Merge remote-tracking branch 'origin/release_1.22.0'

Change-Id: I4dbbd5efb49c68ea5422cdfd295d90fe9344f215
Signed-off-by: Eugen Neufeld <eneufeld@eclipsesource.com>
diff --git a/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2a03a00..a77c279 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
@@ -11,10 +11,10 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.controls.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.fx.util;bundle-version="[1.8.0,1.9.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.application.e4.fx
diff --git a/bundles/javafx/org.eclipse.emf.ecp.controls.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.controls.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.controls.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.controls.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c250ec1..9eb887c 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
@@ -9,18 +9,18 @@
  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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit,
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: com.ibm.icu.text;version="50.0.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.util.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 82a3d36..8987746 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,10 +6,10 @@
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="1.3.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cc2c12b..c02d0e6 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 51487d4..cbbaa6f 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d2317bf..ba38d71 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
@@ -8,14 +8,14 @@
 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"
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit,
  org.eclipse.emf.databinding.edit
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c2bbf0a..76b8a6a 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,13 +6,13 @@
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.util.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.fx.ui.controls;bundle-version="[2.0.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 860790d..e963bb9 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 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 715cb87..51300b6 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.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 61aef80..6f11486 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
@@ -10,9 +10,9 @@
  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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.util.fx;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.e4.ui.workbench,
- org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.fx.ui.controls;bundle-version="[2.0.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/javafx/org.eclipse.emf.emfstore.fx.util/.settings/org.eclipse.pde.api.tools.prefs b/bundles/javafx/org.eclipse.emf.emfstore.fx.util/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/javafx/org.eclipse.emf.emfstore.fx.util/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/javafx/org.eclipse.emf.emfstore.fx.util/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emf.ecp.application.e3/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.application.e3/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.application.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.application.e3/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e7eeeb4..c57f104 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Demo Application Eclipse 3.x
 Bundle-SymbolicName: org.eclipse.emf.ecp.application.e3;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.application3x;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.e3;bundle-version="[1.22.0,1.23.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)",
diff --git a/bundles/org.eclipse.emf.ecp.application.e3/pom.xml b/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
index def853f..2b3c591 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4b04eaa..110b031 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.application.e4.editor;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.e4;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.application.e4.editor;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.e4;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 203b588..c2d1da5 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.cdo.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.cdo.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.cdo.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 13966c9..2043f11 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP CDO Model Repository Core
 Bundle-SymbolicName: org.eclipse.emf.ecp.cdo.core;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.cdo.ui"
+Export-Package: org.eclipse.emf.ecp.cdo.internal.core;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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)",
diff --git a/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml b/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
index 50a286a..8ca4e3c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.cdo.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.cdo.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.cdo.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e99d5e7..6613c66 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: CDO Model Repository ECP UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.cdo.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.cdo.internal.ui.handlers;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.cdo.internal.ui;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.cdo.internal.ui.handlers;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.cdo.core;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.cdo.edit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml b/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
index 146327d..c0f55f2 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.provider/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.changebroker.provider/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker.provider/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.changebroker.provider/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 091d20f..0e5edf5 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker Provider Bridge
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.provider
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.changebroker.provider.internal;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.changebroker;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.changebroker.provider.internal;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.changebroker;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.provider/pom.xml b/bundles/org.eclipse.emf.ecp.changebroker.provider/pom.xml
index 2897705..904d1ad 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.changebroker/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.changebroker/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.changebroker/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5d62b37..671f9db 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.changebroker.internal;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.changebroker.spi;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.changebroker.internal;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.changebroker.spi;version="1.22.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
diff --git a/bundles/org.eclipse.emf.ecp.changebroker/pom.xml b/bundles/org.eclipse.emf.ecp.changebroker/pom.xml
index 7723c6c..53b44b7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.common.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.common.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a990809..895be28 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.ui
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.common.ui;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.spi.common.ui;version="1.21.0",
- org.eclipse.emf.ecp.spi.common.ui.composites;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.internal.common.ui;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.spi.common.ui;version="1.22.0",
+ org.eclipse.emf.ecp.spi.common.ui.composites;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/pom.xml b/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
index c653b0f..ed9106e 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/SelectModelElementWizardFactory.java b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/SelectModelElementWizardFactory.java
index f3ff13b..95b1a69 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/SelectModelElementWizardFactory.java
+++ b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/SelectModelElementWizardFactory.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.spi.common.ui;
 
@@ -22,6 +23,7 @@
 import org.eclipse.emf.ecp.internal.common.ui.MessageKeys;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.window.Window;
@@ -42,13 +44,31 @@
 	 *
 	 * @param <T> the type to select
 	 */
-	@SuppressWarnings("unchecked")
 	public static <T extends EObject> Set<T> openModelElementSelectionDialog(
 		final Set<T> elements, boolean isMany) {
 
 		final SelectionComposite<TableViewer> tableSelectionComposite = CompositeFactory
 			.getTableSelectionComposite(elements.toArray(), isMany);
 
+		return openModelElementSelectionDialog(tableSelectionComposite);
+	}
+
+	/**
+	 * Open a model element selection dialog using a specific table selection composite.
+	 *
+	 * @param tableSelectionComposite a table selection composite to use in the dialog
+	 *
+	 * @return the selected elements
+	 *
+	 * @param <T> the type of object to select
+	 * @param <V> the type of viewer to present
+	 *
+	 * @since 1.22
+	 */
+	@SuppressWarnings("unchecked")
+	public static <T extends EObject, V extends StructuredViewer> Set<T> openModelElementSelectionDialog(
+		SelectionComposite<V> tableSelectionComposite) {
+
 		final SelectModelElementWizard wizard = new SelectModelElementWizard(
 			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
 				MessageKeys.SelectModelElementWizardFactory_ModelelementSelectionDialog_WindowTitle),
diff --git a/bundles/org.eclipse.emf.ecp.common/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.common/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 79b248c..30416a1 100644
--- a/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Common
 Bundle-SymbolicName: org.eclipse.emf.ecp.common
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.common.spi;version="1.21.0",
- org.eclipse.emf.ecp.common.spi.asserts;version="1.21.0",
- org.eclipse.emf.ecp.common.spi.cachetree;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.common.spi;version="1.22.0",
+ org.eclipse.emf.ecp.common.spi.asserts;version="1.22.0",
+ org.eclipse.emf.ecp.common.spi.cachetree;version="1.22.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
diff --git a/bundles/org.eclipse.emf.ecp.common/pom.xml b/bundles/org.eclipse.emf.ecp.common/pom.xml
index 264b7a5..3515a33 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.core.emffilter/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.core.emffilter/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.core.emffilter/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.core.emffilter/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 00a7f3a..2c00846 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.core.emffilter.internal;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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 34ef5a2..c0f3e1d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core.emffilter/src/org/eclipse/emf/ecp/core/emffilter/internal/DefaultFilter.java b/bundles/org.eclipse.emf.ecp.core.emffilter/src/org/eclipse/emf/ecp/core/emffilter/internal/DefaultFilter.java
index cefd728..461c5ac 100644
--- a/bundles/org.eclipse.emf.ecp.core.emffilter/src/org/eclipse/emf/ecp/core/emffilter/internal/DefaultFilter.java
+++ b/bundles/org.eclipse.emf.ecp.core.emffilter/src/org/eclipse/emf/ecp/core/emffilter/internal/DefaultFilter.java
@@ -132,6 +132,9 @@
 		packages.add("http://org/eclipse/emfforms/view/multisegment/model/1190"); //$NON-NLS-1$
 		packages.add("http://org/eclipse/emfforms/view/mappingsegment/model/1190"); //$NON-NLS-1$
 		packages.add("http://org/eclipse/emfforms/view/indexsegment/model/1190"); //$NON-NLS-1$
+
+		// reference service
+		packages.add("http://www.eclipse.org/emf/ecp/view/reference/table/selection"); //$NON-NLS-1$
 	}
 
 	private void addQ7Models1(Set<String> packages) {
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 36e67c0..c26aab7 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.22.0,1.23.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 69b24c4..c2ecb89 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 67da3e4..e3fb877 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.core.rap;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.runtime;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/pom.xml b/bundles/org.eclipse.emf.ecp.core.rap/pom.xml
index f729e5c..62e91b3 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bbd9527..825f075 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.core.exceptions;version="1.21.0",
- org.eclipse.emf.ecp.core.util;version="1.21.0",
- org.eclipse.emf.ecp.core.util.observer;version="1.21.0",
- org.eclipse.emf.ecp.internal.core;version="1.21.0";
+Export-Package: org.eclipse.emf.ecp.core;version="1.22.0",
+ org.eclipse.emf.ecp.core.exceptions;version="1.22.0",
+ org.eclipse.emf.ecp.core.util;version="1.22.0",
+ org.eclipse.emf.ecp.core.util.observer;version="1.22.0",
+ org.eclipse.emf.ecp.internal.core;version="1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.internal.core.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.ui",
- org.eclipse.emf.ecp.internal.core.util.observer;version="1.21.0";x-friends:="org.eclipse.emf.ecp.core.rap",
- org.eclipse.emf.ecp.spi.core;version="1.21.0",
- org.eclipse.emf.ecp.spi.core.util;version="1.21.0"
+ org.eclipse.emf.ecp.internal.core.properties;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.internal.core.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.ui",
+ org.eclipse.emf.ecp.internal.core.util.observer;version="1.22.0";x-friends:="org.eclipse.emf.ecp.core.rap",
+ org.eclipse.emf.ecp.spi.core;version="1.22.0",
+ org.eclipse.emf.ecp.spi.core.util;version="1.22.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.21.0,1.22.0)"
-Import-Package: org.eclipse.emfforms.common;version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
+Import-Package: org.eclipse.emfforms.common;version="[1.22.0,1.23.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 655eb01..bc4d007 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.diagnostician/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.diagnostician/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.diagnostician/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.diagnostician/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8110fd1..196e654 100644
--- a/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Diagnostician
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.diagnostician;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.diagnostician;version="1.22.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.22.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
diff --git a/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml b/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml
index fc508f2..1e4d161 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 75eecaa..3af5974 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.diffmerge.spi.context;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+Export-Package: org.eclipse.emf.ecp.diffmerge.internal.context;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.diffmerge.spi.context;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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 b572288..d5eab33 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 da81c40..0bb132e 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model.provider;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 4399eaa..a1aef8d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.diffmerge.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8792a29..1c54c33 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model;version="1.21.0",
- org.eclipse.emf.ecp.spi.diffmerge.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.spi.diffmerge.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model;version="1.22.0",
+ org.eclipse.emf.ecp.spi.diffmerge.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.spi.diffmerge.model.util;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 2572bbb..2eac5b7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3c5a3c5..1f060ec 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,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DiffMerge Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.renderer.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.diffmerge.internal.renderer.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
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 05de57a..1951fd7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/Activator.java b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/Activator.java
index 3ac607e..009f0f0 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/Activator.java
@@ -15,7 +15,6 @@
 
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
-import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.swt.graphics.Image;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -30,7 +29,6 @@
 
 	private static Activator instance;
 	private ServiceReference<ImageRegistryService> imageRegistryServiceReference;
-	private ServiceReference<ReportService> reportServiceReference;
 
 	// BEGIN SUPRESS CATCH EXCEPTION
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.diffmerge.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0c772c2..e914e6c 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,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DiffMerge UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.swt
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.diffmerge.renderer.swt"
+Export-Package: org.eclipse.emf.ecp.diffmerge.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.jface.layout;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml
index d15f55e..f5d2e12 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.doc/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.doc/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.doc/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.doc/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 87bab36..9a0890a 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.21.0.qualifier
+Bundle-Version: 1.22.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 14f4b08..ec05ae4 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ec244eb..19c2341 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECore GenModel Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ecore.editor.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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
@@ -14,7 +14,7 @@
  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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ecore.editor;bundle-version="[1.22.0,1.23.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
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 576e788..59c5df7 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/src/org/eclipse/emf/ecp/ecore/editor/ui/EMFSimpleProjectWizard.java b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/src/org/eclipse/emf/ecp/ecore/editor/ui/EMFSimpleProjectWizard.java
index 820c8b4..7f757ad 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/src/org/eclipse/emf/ecp/ecore/editor/ui/EMFSimpleProjectWizard.java
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/src/org/eclipse/emf/ecp/ecore/editor/ui/EMFSimpleProjectWizard.java
@@ -100,6 +100,7 @@
 	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
 	 *      org.eclipse.jface.viewers.IStructuredSelection)
 	 */
+	@Override
 	public void init(IWorkbench workbench, IStructuredSelection selection) {
 		this.workbench = workbench;
 		this.selection = selection;
@@ -182,11 +183,8 @@
 			if (activePart instanceof ISetSelectionTarget) {
 				final ISelection targetSelection = new StructuredSelection(
 					project);
-				getShell().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						((ISetSelectionTarget) activePart)
-							.selectReveal(targetSelection);
-					}
+				getShell().getDisplay().asyncExec(() -> {
+					((ISetSelectionTarget) activePart).selectReveal(targetSelection);
 				});
 			}
 		}
@@ -220,6 +218,7 @@
 			final ISelection targetSelection = new StructuredSelection(
 				modelFile);
 			getShell().getDisplay().asyncExec(new Runnable() {
+				@Override
 				public void run() {
 					((ISetSelectionTarget) activePart)
 						.selectReveal(targetSelection);
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f705944..0816c49 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.21.0.qualifier
+Bundle-Version: 1.22.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",
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml b/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml
index d85eade..8c8e5e3 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/src/org/eclipse/emf/ecp/ecore/editor/internal/EcoreGenModelLinkerImpl.java b/bundles/org.eclipse.emf.ecp.ecore.editor/src/org/eclipse/emf/ecp/ecore/editor/internal/EcoreGenModelLinkerImpl.java
index bc407d6..b0440e9 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/src/org/eclipse/emf/ecp/ecore/editor/internal/EcoreGenModelLinkerImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/src/org/eclipse/emf/ecp/ecore/editor/internal/EcoreGenModelLinkerImpl.java
@@ -69,6 +69,7 @@
 	 * @param modelProjectPath The path (relative) of the model project
 	 * @throws EcoreGenException in case generating the genmodel fails
 	 */
+	@Override
 	public void generateGenModel(String ecorePath, String genModelPathParam,
 		String modelProjectPath) throws EcoreGenException {
 
diff --git a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8e8e464..cb77458 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.edit.ecore.swt.internal;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.edit.ecore.swt.internal;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.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 e45a2e7..29931ff 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.edit.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 70a660f..83a242f 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,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.21.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.21.0";
+Export-Package: org.eclipse.emf.ecp.edit.internal.swt;version="1.22.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.22.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.22.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.21.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.21.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.21.0";
+ org.eclipse.emf.ecp.edit.internal.swt.reference;version="1.22.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.22.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.22.0";
   x-friends:="org.eclipse.emf.ecp.editor,
    org.eclipse.emf.ecp.explorereditorbridge,
    org.eclipse.emf.ecp.ui.view.swt,
@@ -26,26 +26,26 @@
    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.21.0",
- org.eclipse.emf.ecp.edit.spi.swt.commands;version="1.21.0",
- org.eclipse.emf.ecp.edit.spi.swt.reference;version="1.21.0",
- org.eclipse.emf.ecp.edit.spi.swt.table;version="1.21.0",
- org.eclipse.emf.ecp.edit.spi.swt.util;version="1.21.0"
+ org.eclipse.emf.ecp.edit.spi.swt.actions;version="1.22.0",
+ org.eclipse.emf.ecp.edit.spi.swt.commands;version="1.22.0",
+ org.eclipse.emf.ecp.edit.spi.swt.reference;version="1.22.0",
+ org.eclipse.emf.ecp.edit.spi.swt.table;version="1.22.0",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml b/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
index 74545d1..66ef636 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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/reference/LinkCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkCellEditor.java
index fbc61b7..735720f 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkCellEditor.java
@@ -18,7 +18,10 @@
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
@@ -27,7 +30,6 @@
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-import org.eclipse.jface.databinding.swt.WidgetValueProperty;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
@@ -78,7 +80,7 @@
 	 */
 	@Override
 	public IValueProperty getValueProperty() {
-		return new WidgetValueProperty() {
+		return new SimpleValueProperty() {
 
 			@Override
 			public Object getValueType() {
@@ -102,6 +104,11 @@
 				}
 				return super.observe(source);
 			}
+
+			@Override
+			public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+				return null;
+			}
 		};
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/DateCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/DateCellEditor.java
index da99637..90a7cde 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/DateCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/DateCellEditor.java
@@ -22,11 +22,13 @@
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.jface.databinding.swt.WidgetValueProperty;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.FocusAdapter;
@@ -80,7 +82,7 @@
 
 	@Override
 	public IValueProperty getValueProperty() {
-		return new WidgetValueProperty() {
+		return new SimpleValueProperty() {
 
 			@Override
 			public Object getValueType() {
@@ -104,6 +106,11 @@
 				}
 				return super.observe(source);
 			}
+
+			@Override
+			public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+				return null;
+			}
 		};
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/XmlDateCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/XmlDateCellEditor.java
index 4655da1..3611602 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/XmlDateCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/XmlDateCellEditor.java
@@ -24,12 +24,14 @@
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.edit.internal.swt.util.DateUtil;
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.jface.databinding.swt.WidgetValueProperty;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.FocusAdapter;
@@ -88,7 +90,7 @@
 	 */
 	@Override
 	public IValueProperty getValueProperty() {
-		return new WidgetValueProperty() {
+		return new SimpleValueProperty() {
 
 			@Override
 			public Object getValueType() {
@@ -112,6 +114,11 @@
 				}
 				return super.observe(source);
 			}
+
+			@Override
+			public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+				return null;
+			}
 		};
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/PreSetValidationListeners.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/PreSetValidationListeners.java
index 4d662b6..282d09b 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/PreSetValidationListeners.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/PreSetValidationListeners.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Edgar Mueller - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.edit.internal.swt.util;
 
@@ -31,15 +32,18 @@
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emfforms.spi.common.validation.PreSetValidationService;
 import org.eclipse.emfforms.spi.common.validation.PreSetValidationServiceRunnable;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
 import org.eclipse.swt.events.FocusEvent;
 import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.events.VerifyEvent;
 import org.eclipse.swt.events.VerifyListener;
 import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Text;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
 
 /**
  * Utility class for setting up a {@link VerifyListener}
@@ -51,14 +55,24 @@
 	/**
 	 * Singleton instance.
 	 */
+	@Deprecated
 	private static PreSetValidationListeners validationListeners;
-	private static PreSetValidationService preSetValidationService;
+	@Deprecated
+	private static ServiceTracker<PreSetValidationService, PreSetValidationService> serviceTracker;
 
+	private final ViewModelContext context;
+	private PreSetValidationService preSetValidationService;
+
+	@Deprecated
 	private PreSetValidationListeners() {
-		init();
+		this(null);
 	}
 
 	private PreSetValidationListeners(ViewModelContext context) {
+		super();
+
+		this.context = context;
+
 		init(context);
 	}
 
@@ -83,29 +97,33 @@
 	 * @return the factory that can be used to create and attach listeners
 	 */
 	public static PreSetValidationListeners create(ViewModelContext context) {
-		if (validationListeners == null) {
-			validationListeners = new PreSetValidationListeners(context);
+		final String key = PreSetValidationListeners.class.getName();
+		PreSetValidationListeners result = (PreSetValidationListeners) context.getContextValue(key);
+		if (result == null) {
+			result = new PreSetValidationListeners(context);
+			context.putContextValue(key, result);
 		}
-		return validationListeners;
+
+		return result;
 	}
 
-	private void init() {
-		if (preSetValidationService == null) {
+	@Deprecated
+	private static PreSetValidationService getPreSetValidationService() {
+		if (serviceTracker == null) {
 			final BundleContext bundleContext = FrameworkUtil
-				.getBundle(getClass())
+				.getBundle(PreSetValidationListeners.class)
 				.getBundleContext();
-
-			final ServiceReference<PreSetValidationService> serviceReference = bundleContext
-				.getServiceReference(PreSetValidationService.class);
-
-			preSetValidationService = serviceReference != null
-				? bundleContext.getService(serviceReference)
-				: null;
+			serviceTracker = new ServiceTracker<>(bundleContext, PreSetValidationService.class, null);
+			serviceTracker.open();
 		}
+
+		return serviceTracker.getService();
 	}
 
 	private void init(ViewModelContext context) {
-		if (preSetValidationService == null && context.hasService(PreSetValidationService.class)) {
+		if (context == null) {
+			preSetValidationService = getPreSetValidationService();
+		} else if (context.hasService(PreSetValidationService.class)) {
 			preSetValidationService = context.getService(PreSetValidationService.class);
 		}
 	}
@@ -151,8 +169,9 @@
 		final EAttribute attribute = (EAttribute) feature;
 
 		if (preSetValidationService != null) {
-			final VerifyListener verifyListener = new PreSetVerifyListener(vElement, attribute);
-			text.addVerifyListener(verifyListener);
+			final PreSetVerifyListener verifyListener = new PreSetVerifyListener(vElement, attribute,
+				this, preSetValidationService);
+			verifyListener.register(text);
 		}
 	}
 
@@ -175,8 +194,9 @@
 		final EAttribute attribute = (EAttribute) feature;
 
 		if (preSetValidationService != null) {
-			final VerifyListener verifyListener = new PreSetVerifyListener(vElement, attribute);
-			combo.addVerifyListener(verifyListener);
+			final PreSetVerifyListener verifyListener = new PreSetVerifyListener(vElement, attribute,
+				this, preSetValidationService);
+			verifyListener.register(combo);
 		}
 	}
 
@@ -246,28 +266,48 @@
 	 *
 	 */
 	public static class PreSetVerifyListener implements VerifyListener {
-
 		private final EAttribute attribute;
 		private final VElement vElement;
+		private final PreSetValidationListeners validationListeners;
+		private final PreSetValidationService preSetValidationService;
+
+		private Control control;
 
 		/**
 		 * Constructor.
 		 *
 		 * @param vElement the {@link VElement} any {@link VDiagnostic} will be attached to
 		 * @param attribute the {@link EAttribute} to be validated
+		 * @deprecated This constructor uses the deprecated singleton instances that reference the wrong view-model
+		 *             context. As of the 1.22 release, use the
+		 *             {@link PreSetValidationListeners#verify(Text, EStructuralFeature)} API and its
+		 *             variants, and do not manage these listeners directly
 		 */
+		@Deprecated
 		public PreSetVerifyListener(VElement vElement, EAttribute attribute) {
+			this(vElement, attribute, PreSetValidationListeners.validationListeners, getPreSetValidationService());
+		}
+
+		/**
+		 * Constructor.
+		 *
+		 * @param vElement the {@link VElement} any {@link VDiagnostic} will be attached to
+		 * @param attribute the {@link EAttribute} to be validated
+		 * @param validationListeners the validation listeners that I support
+		 * @param preSetValidationService the validation service to delegate to
+		 */
+		PreSetVerifyListener(VElement vElement, EAttribute attribute, PreSetValidationListeners validationListeners,
+			PreSetValidationService preSetValidationService) {
+
 			this.vElement = vElement;
 			this.attribute = attribute;
+			this.validationListeners = validationListeners;
+			this.preSetValidationService = preSetValidationService;
+
+			validationListeners.context.registerEMFFormsContextListener(createContextListener());
 		}
 
 		@Override
-		/**
-		 *
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.swt.events.VerifyListener#verifyText(org.eclipse.swt.events.VerifyEvent)
-		 */
 		public void verifyText(VerifyEvent e) {
 			final String changedText = obtainText(e);
 
@@ -334,5 +374,69 @@
 			return classifier.getInstanceTypeName().equals(Integer.class.getCanonicalName());
 		}
 
+		private void register(Control control) {
+			// while the renderer is setting up, or while the context is (re-)initializing from
+			// a root domain model change, we should not perform pre-set validation
+			this.control = control;
+
+			control.getDisplay().asyncExec(this::start);
+		}
+
+		private void start() {
+			if (control != null && !control.isDisposed()) {
+				if (control instanceof Text) {
+					((Text) control).addVerifyListener(this);
+				} else if (control instanceof Combo) {
+					((Combo) control).addVerifyListener(this);
+				}
+			}
+		}
+
+		private Control stop() {
+			final Control result = control;
+
+			if (control != null && !control.isDisposed()) {
+				if (control instanceof Text) {
+					((Text) control).removeVerifyListener(this);
+				} else if (control instanceof Combo) {
+					((Combo) control).removeVerifyListener(this);
+				}
+			}
+
+			control = null;
+			return result;
+		}
+
+		private EMFFormsContextListener createContextListener() {
+			return new EMFFormsContextListener() {
+
+				private Control control;
+
+				@Override
+				public void contextInitialised() {
+					if (control != null && !control.isDisposed()) {
+						register(control);
+					}
+				}
+
+				@Override
+				public void contextDispose() {
+					control = stop();
+				}
+
+				@Override
+				public void childContextAdded(VElement parentElement, EMFFormsViewContext childContext) {
+					// Not interesting
+				}
+
+				@Override
+				public void childContextDisposed(EMFFormsViewContext childContext) {
+					// Not interesting
+				}
+
+			};
+		}
+
 	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java
index 06e3839..5372a11 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java
@@ -18,6 +18,7 @@
 import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.jface.databinding.swt.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.CellEditorProperties;
 import org.eclipse.swt.SWT;
@@ -61,33 +62,16 @@
 		super(parent, style);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getValueProperty()
-	 */
 	@Override
 	public IValueProperty getValueProperty() {
 		return CellEditorProperties.control().value(WidgetProperties.text(SWT.FocusOut));
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#instantiate(org.eclipse.emf.ecore.EStructuralFeature,
-	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
 	@Override
 	public void instantiate(EStructuralFeature feature, ViewModelContext viewModelContext) {
 		eStructuralFeature = feature;
 	}
 
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getFormatedString(java.lang.Object)
-	 */
 	@Override
 	public String getFormatedString(Object value) {
 		if (value == null) {
@@ -96,47 +80,34 @@
 		return String.valueOf(value);
 	}
 
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getColumnWidthWeight()
-	 */
 	@Override
 	public int getColumnWidthWeight() {
 		return 100;
 	}
 
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)
-	 * @since 1.6
-	 */
 	@Override
 	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {
-		return withPreSetValidation(eStructuralFeature, new UpdateValueStrategy());
+		return withPreSetValidation(eStructuralFeature, new UpdateValueStrategy() {
+
+			@Override
+			public Object convert(Object value) {
+				if ("".equals(value)) { //$NON-NLS-1$
+					value = null;
+				}
+				if (value == null && eStructuralFeature.isUnsettable()) {
+					return SetCommand.UNSET_VALUE;
+				}
+				return super.convert(value);
+			}
+
+		});
 	}
 
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)
-	 * @since 1.6
-	 */
 	@Override
 	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
 		return null;
 	}
 
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#setEditable(boolean)
-	 */
 	@Override
 	public void setEditable(boolean editable) {
 		if (text != null) {
@@ -144,22 +115,11 @@
 		}
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getImage(java.lang.Object)
-	 */
 	@Override
 	public Image getImage(Object value) {
 		return null;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getMinWidth()
-	 * @since 1.6
-	 */
 	@Override
 	public int getMinWidth() {
 		return 0;
diff --git a/bundles/org.eclipse.emf.ecp.edit/.project b/bundles/org.eclipse.emf.ecp.edit/.project
index f470f5f..eb6b4c3 100644
--- a/bundles/org.eclipse.emf.ecp.edit/.project
+++ b/bundles/org.eclipse.emf.ecp.edit/.project
@@ -46,6 +46,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>

 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>

 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>

-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>

 	</natures>

 </projectDescription>

diff --git a/bundles/org.eclipse.emf.ecp.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 263d800..c466152 100644
--- a/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
@@ -2,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.edit.spi.util;version="1.21.0",
- org.eclipse.emf.ecp.internal.edit;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.edit.spi;version="1.22.0",
+ org.eclipse.emf.ecp.edit.spi.util;version="1.22.0",
+ org.eclipse.emf.ecp.internal.edit;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
-Import-Package: org.eclipse.emf.ecp.view.model.common.edit.provider;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)"
+Import-Package: org.eclipse.emf.ecp.view.model.common.edit.provider;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emf.ecp.edit/pom.xml b/bundles/org.eclipse.emf.ecp.edit/pom.xml
index 783ceb1..6df46e4 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.editor.e3/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e62be71..006d813 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,24 +2,24 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
- org.eclipse.emf.ecp.editor.internal.e3;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.editor.e3;version="1.22.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
+ org.eclipse.emf.ecp.editor.internal.e3;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml b/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
index 030d917..1f4b3c2 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emf2web.json/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 599b536..1f712d9 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.21.0",
- org.eclipse.emf.ecp.emf2web.json.generator.seed.xtend;version="1.21.0",
- org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.21.0",
- org.eclipse.emf.ecp.emf2web.json.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.22.0",
+ org.eclipse.emf.ecp.emf2web.json.generator.seed.xtend;version="1.22.0",
+ org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.22.0",
+ org.eclipse.emf.ecp.emf2web.json.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.emf2web;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  com.google.gson;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.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 5ce5c26..ec101bd 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6acc7e9..2e6d3c8 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emf2web.ui.json.internal.handler;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emf2web.ui.json.internal.messages;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emf2web.ui.json;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.ui.json.internal.handler;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.ui.json.internal.messages;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.emf2web.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.emf2web;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emf2web;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.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 ae2478e..3a24d0e 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emf2web.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e6961f6..6c7cac8 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emf2web.ui.handler;version="1.21.0",
- org.eclipse.emf.ecp.emf2web.ui.messages;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emf2web.ui.wizard;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.emf2web;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.emf2web.ui.handler;version="1.22.0",
+ org.eclipse.emf.ecp.emf2web.ui.messages;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.ui.wizard;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.emf2web;bundle-version="[1.22.0,1.23.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)",
@@ -15,7 +15,7 @@
  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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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)"
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
index 42b86de..fa0e4a5 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emf2web/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emf2web/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5ba6fae..fedf231 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
@@ -2,50 +2,49 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emf2web.controller.xtend;version="1.21.0";
+Export-Package: org.eclipse.emf.ecp.emf2web;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.controller.xtend;version="1.22.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.21.0";uses:="org.eclipse.emf.common.util,org.eclipse.emf.ecp.emf2web.controller.xtend",
- org.eclipse.emf.ecp.emf2web.generator;version="1.21.0";uses:="org.eclipse.emf.ecore",
- org.eclipse.emf.ecp.emf2web.internal.messages;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emf2web.util;version="1.21.0";uses:="org.eclipse.emf.ecore",
- org.eclipse.emf.ecp.emf2web.util.xtend;version="1.21.0"
+ org.eclipse.emf.ecp.emf2web.exporter;version="1.22.0";uses:="org.eclipse.emf.common.util,org.eclipse.emf.ecp.emf2web.controller.xtend",
+ org.eclipse.emf.ecp.emf2web.generator;version="1.22.0";uses:="org.eclipse.emf.ecore",
+ org.eclipse.emf.ecp.emf2web.internal.messages;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.util;version="1.22.0";uses:="org.eclipse.emf.ecore",
+ org.eclipse.emf.ecp.emf2web.util.xtend;version="1.22.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)",
  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
  org.eclipse.xtend.lib;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.xtext.xbase.lib;bundle-version="[2.8.0,3.0.0)",
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.22.0,1.23.0)",
  com.google.gson;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.common.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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 ab9b2fb..6dfd189 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c0a6236..7608493 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore Core RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.core.rap
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.core.rap;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.rap.rwt;version="0.0.0",
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 9695231..4a27531 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ca84bbb..d21ebb6 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore Provider Core Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.core;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";
+Export-Package: org.eclipse.emf.ecp.emfstore.core.internal;version="1.22.0";
   x-friends:="org.eclipse.emf.ecp.emfstore.ui,
    org.eclipse.emf.ecp.emfstore.ui.search,
    org.eclipse.emf.ecp.view.ui.editor.test,
@@ -13,10 +13,10 @@
    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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.common;version="[1.22.0,1.23.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 9123ab7..79f4c10 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.localserver/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.localserver/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.localserver/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.localserver/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f777a63..f7451ea 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,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore E3
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e3;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emfstore.internal.ui.e3;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.21.0";x-internal:=true;uses:="org.eclipse.core.commands"
-Require-Bundle: org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui.decorator;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.e3;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.22.0";x-internal:=true;uses:="org.eclipse.core.commands"
+Require-Bundle: org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
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 8e400e5..34182ba 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e0733df..2c70a4d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.e4.emfstore;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
+Export-Package: org.eclipse.emf.ecp.e4.emfstore;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.e4.core.di;bundle-version="[1.3.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.client;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.22.0,1.23.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 4a3e59d..2818798 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 192ec92..b18813f 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Search UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.search;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emfstore.ui.search;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.ui.search;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.e3;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.e3;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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",
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 597d83f..7a31962 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6b4c959..362a16a 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,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore UI Provider
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.21.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.emfstore.internal.ui.property;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.22.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.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.property;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml
index 828a2d7..7318add 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.examplemodel.ui/.project b/bundles/org.eclipse.emf.ecp.examplemodel.ui/.project
index 2795068..7c93b70 100644
--- a/bundles/org.eclipse.emf.ecp.examplemodel.ui/.project
+++ b/bundles/org.eclipse.emf.ecp.examplemodel.ui/.project
@@ -6,11 +6,6 @@
 	</projects>

 	<buildSpec>

 		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

 			<name>org.eclipse.pde.ManifestBuilder</name>

 			<arguments>

 			</arguments>

diff --git a/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.jdt.core.prefs
index 0309974..5701814 100644
--- a/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.jdt.core.prefs
@@ -24,17 +24,9 @@
 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.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
@@ -43,7 +35,6 @@
 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
@@ -130,7 +121,6 @@
 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.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.examplemodel.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.examplemodel.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c0931df..fa7b85c 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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 78e3e32..9c6bebb 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.explorereditorbridge/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.explorereditorbridge/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.explorereditorbridge/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.explorereditorbridge/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 56dea63..8f8e680 100644
--- a/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Explorer Editor Bridge
 Bundle-SymbolicName: org.eclipse.emf.ecp.explorereditorbridge;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.ui.view.test"
+Export-Package: org.eclipse.emf.ecp.explorereditorbridge.internal;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.editor.e3;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.editor.e3;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.internal.swt;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml b/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml
index ada026e..f783420 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.graphiti.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.graphiti.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.graphiti.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emf.ecp.graphiti.integration/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.graphiti.integration/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.integration/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.graphiti.integration/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 67d16ae..10e4218 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
@@ -16,7 +16,7 @@
  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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c93a1e1..342d129 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ide.editor.view.templatebridge.actions;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.internal.ide.editor.view.templatebridge.actions;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.tooling;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.tooling;bundle-version="[1.22.0,1.23.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 800e790..cd2f218 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ide.editor.view/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2936af5..0a48667 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,26 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE View Editor
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3",
- org.eclipse.emf.ecp.ide.editor.view.messages;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3",
+ org.eclipse.emf.ecp.ide.editor.view.messages;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.ui.ide;bundle-version="[3.9.1,4.0.0)",
- org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)"
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emfforms.ide.view.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.e4.core.contexts;version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.editor;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.editor.view
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 3ca66ae..c892ef0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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/ViewEditorPart.java b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart.java
index 9d9d2c0..de4e9af 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
@@ -10,19 +10,28 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bug 543376
+ * Christian W. Damus - bugs 543376, 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.ide.editor.view;
 
+import static org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory.provide;
+
+import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
+import java.nio.file.Files;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.EventObject;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
@@ -30,11 +39,13 @@
 import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IStorage;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.emf.common.command.BasicCommandStack;
 import org.eclipse.emf.common.command.CommandStackListener;
 import org.eclipse.emf.common.notify.AdapterFactory;
@@ -74,6 +85,12 @@
 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.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.editor.GotoMarkerAdapter;
+import org.eclipse.emfforms.spi.editor.helpers.ResourceSetHelpers;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrationException;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -86,6 +103,8 @@
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IPartListener2;
+import org.eclipse.ui.IPathEditorInput;
+import org.eclipse.ui.IStorageEditorInput;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPartReference;
 import org.eclipse.ui.PartInitException;
@@ -94,6 +113,7 @@
 import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
 import org.eclipse.ui.dialogs.ISelectionStatusValidator;
 import org.eclipse.ui.dialogs.ListSelectionDialog;
+import org.eclipse.ui.ide.IGotoMarker;
 import org.eclipse.ui.model.BaseWorkbenchContentProvider;
 import org.eclipse.ui.model.WorkbenchLabelProvider;
 import org.eclipse.ui.part.EditorPart;
@@ -108,6 +128,7 @@
 public class ViewEditorPart extends EditorPart implements
 	ViewModelEditorCallback, IEditingDomainProvider {
 
+	private URI inputUri;
 	private Resource resource;
 	private BasicCommandStack basicCommandStack;
 	private Composite parent;
@@ -245,6 +266,9 @@
 		if (adapter == ViewModelContext.class) {
 			return adapter.cast(render.getViewModelContext());
 		}
+		if (adapter == IGotoMarker.class) {
+			return adapter.cast(new GotoMarkerAdapter(render.getViewModelContext(), getEditingDomain()));
+		}
 		return super.getAdapter(adapter);
 	}
 
@@ -307,8 +331,12 @@
 	 */
 	private void loadView(boolean migrate, boolean resolve) throws IOException, PartInitException {
 
-		// resourceURI must be a platform resource URI
-		final URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());
+		if (inputUri == null) {
+			inputUri = getInputUri(getEditorInput())
+				.orElseThrow(() -> new PartInitException("Invalid editor input.")); //$NON-NLS-1$
+		}
+
+		final URI resourceURI = inputUri;
 		if (migrate) {
 			checkMigration(resourceURI);
 		}
@@ -320,15 +348,55 @@
 		if (resolve) {
 			// resolve all proxies
 			final ResourceSet resourceSet = editingDomain.getResourceSet();
-			int rsSize = resourceSet.getResources().size();
-			EcoreUtil.resolveAll(resourceSet);
-			while (rsSize != resourceSet.getResources().size()) {
-				EcoreUtil.resolveAll(resourceSet);
-				rsSize = resourceSet.getResources().size();
-			}
+			ResourceSetHelpers.resolveAllProxies(resourceSet);
 		}
 	}
 
+	/**
+	 * Gets a uri from the given {@link IEditorInput}. If the editor input is a {@link IPathEditorInput} or a
+	 * {@link IStorageEditorInput} whose {@link IStorage} has a path, the uri is directly derived from the
+	 * input. In case of a {@link IStorageEditorInput} without a path, a temporary file is created which contains the
+	 * storage's contents.
+	 * In any other case, an empty Optional is returned.
+	 *
+	 * @param editorInput The editor's input
+	 * @return The File containing the editor inputs contents if possible, nothing otherwise
+	 */
+	private Optional<URI> getInputUri(IEditorInput editorInput) {
+		if (isEditable(editorInput)) {
+			// Normal file that can be edited on the hard drive
+			return Optional.of(EditUIUtil.getURI(getEditorInput()));
+		} else if (editorInput instanceof IStorageEditorInput) {
+			try {
+				final IStorage storage = IStorageEditorInput.class.cast(editorInput).getStorage();
+				// Create a temporary file and copy the storage's content to it.
+				final File tempFile = File.createTempFile("view-", ".tmp.view"); //$NON-NLS-1$ //$NON-NLS-2$
+				tempFile.delete();
+				tempFile.deleteOnExit();
+				try (InputStream contents = storage.getContents()) {
+					Files.copy(contents, tempFile.toPath());
+					return Optional.of(URI.createFileURI(tempFile.getAbsolutePath()));
+				}
+			} catch (final CoreException | IOException ex) {
+				Activator.getDefault().getReportService().report(new AbstractReport(ex));
+				return Optional.empty();
+			}
+
+		}
+		return Optional.empty();
+	}
+
+	/**
+	 * Returns whether the editor input allows editing of its contents.
+	 *
+	 * @param editorInput the editor's {@link IEditorInput}
+	 * @return <code>true</code> if the input source allows editing, <code>false</code> otherwise
+	 */
+	private boolean isEditable(IEditorInput editorInput) {
+		// Only allow editing data if it can be persisted
+		return editorInput.getPersistable() != null;
+	}
+
 	private void checkMigration(final URI resourceURI) {
 		final ViewModelMigrator migrator = ViewModelMigratorUtil.getViewModelMigrator();
 		if (migrator == null) {
@@ -344,6 +412,7 @@
 					Messages.WorkspaceMigrationDialog_Title,
 					Messages.WorkspaceMigrationDialog_Description);
 				final List<URI> toMigrate = new ArrayList<URI>();
+				final Set<URI> successfullyMigrated = new HashSet<>();
 				if (migrateWorkspace) {
 					for (final URI uri : getWorkspaceURIsToMigrate(resourceURI)) {
 						try {
@@ -373,6 +442,7 @@
 						try {
 							for (final URI uri : toMigrate) {
 								migrator.performMigration(uri);
+								successfullyMigrated.add(uri);
 							}
 						} catch (final ViewModelMigrationException ex) {
 							throw new InvocationTargetException(ex);
@@ -405,9 +475,51 @@
 								e));
 				}
 
+				// If a migration is necessary, only allow legacy dmr migration if the view model was migrated
+				// successfully
+				if (ToolingModeUtil.isSegmentToolingEnabled() && successfullyMigrated.contains(resourceURI)) {
+					migrateLegacyDmrs(shell, resourceURI);
+				}
 			}
 
 			migrateTemplateModels(shell);
+
+		} else if (ToolingModeUtil.isSegmentToolingEnabled()) {
+			migrateLegacyDmrs(shell, resourceURI);
+		}
+	}
+
+	/**
+	 * Checks whether the current view model contains any legacy DMRs. If yes, ask the user whether (s)he wants to
+	 * migrate them to segment based DMRs and execute the migration if the user accepts.
+	 *
+	 * @param shell The shell to open UI dialogs on
+	 * @param resourceURI the resource URI of the view model to migrate
+	 */
+	private void migrateLegacyDmrs(Shell shell, final URI resourceURI) {
+		final DmrToSegmentsMigrator migrator = getEditorSite().getService(DmrToSegmentsMigrator.class);
+		if (migrator.needsMigration(resourceURI)) {
+			final boolean migrate = MessageDialog.openQuestion(shell, Messages.ViewEditorPart_LegacyMigrationTitle,
+				Messages.ViewEditorPart_LegacyMigrationQuestion);
+			if (migrate) {
+				try {
+					new ProgressMonitorDialog(shell).run(true, false, monitor -> {
+						try {
+							migrator.performMigration(resourceURI);
+						} catch (final DmrToSegmentsMigrationException ex) {
+							throw new InvocationTargetException(ex);
+						}
+					});
+				} catch (InvocationTargetException | InterruptedException ex) {
+					MessageDialog.openError(
+						Display.getDefault().getActiveShell(), Messages.ViewEditorPart_LegacyMigrationErrorTitle,
+						Messages.ViewEditorPart_LegacyMigrationErrorText +
+							Messages.ViewEditorPart_MigrationErrorText2);
+					Activator.getDefault().getLog().log(
+						new Status(IStatus.ERROR, Activator.PLUGIN_ID,
+							Messages.ViewEditorPart_LegacyMigrationErrorTitle, ex));
+				}
+			}
 		}
 	}
 
@@ -647,9 +759,18 @@
 		}
 
 		try {
+			final Map<String, Object> contextValues = Collections.singletonMap(
+				IEclipseContext.class.getName(),
+				getSite().getService(IEclipseContext.class));
 			final ViewModelContext viewModelContext = ViewModelContextFactory.INSTANCE
-				.createViewModelContext(ViewProviderHelper.getView(view, null), view, new DefaultReferenceService(),
-					new EMFDeleteServiceImpl());
+				.createViewModelContext(ViewProviderHelper.getView(view, null), view,
+					provide(new DefaultReferenceService(), new EMFDeleteServiceImpl()),
+					contextValues);
+
+			if (!isEditable(getEditorInput())) {
+				viewModelContext.getViewModel().setReadonly(true);
+			}
+
 			viewModelContext.putContextValue("enableMultiEdit", Boolean.TRUE); //$NON-NLS-1$
 			render = ECPSWTViewRenderer.INSTANCE.render(parent, viewModelContext);
 			getSite().setSelectionProvider(
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/Messages.java b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/Messages.java
index fbd8363..e508012 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/Messages.java
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/Messages.java
@@ -29,6 +29,10 @@
 	public static String ViewEditorPart_invalidVView_noRootEClass;
 	public static String ViewEditorPart_invalidVView_rootEClassNotInPackage;
 	public static String ViewEditorPart_invalidVView_rootEClassPackageNotResolved;
+	public static String ViewEditorPart_LegacyMigrationErrorText;
+	public static String ViewEditorPart_LegacyMigrationErrorTitle;
+	public static String ViewEditorPart_LegacyMigrationQuestion;
+	public static String ViewEditorPart_LegacyMigrationTitle;
 	public static String ViewEditorPart_LoadedPartlyDescription;
 	public static String ViewEditorPart_LoadedPartlyTitle;
 	public static String ViewEditorPart_MigrationErrorText1;
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/messages.properties b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/messages.properties
index 24caf67..9619cad 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/messages.properties
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/messages/messages.properties
@@ -5,6 +5,10 @@
 ViewEditorPart_invalidVView_noRootEClass=The file you attempted to open does not seem to contain a valid EMFForms view model.\nReason: The VView element refers to an invalid root Eclass.
 ViewEditorPart_invalidVView_rootEClassNotInPackage=The root EClass "{0}" of the VView element could not be resolved.\nReason: The registered EPackage "{1}" with namespace URI "{2}" does not contain the root EClass.\nPerhaps your Ecore does not fit to your view model?
 ViewEditorPart_invalidVView_rootEClassPackageNotResolved=The root EClass "{0}" of the VView could not be resolved using package "{1}".\nMake sure you registered the EPackage containing your EClass with its respective namespace URI.
+ViewEditorPart_LegacyMigrationErrorText=An error occured while migrating legacy domain model references to segments. 
+ViewEditorPart_LegacyMigrationErrorTitle=EMFForms Legacy DMR Migration Error
+ViewEditorPart_LegacyMigrationQuestion=The current view model still uses legacy domain model references. Should they be migrated to segment based domain model references?
+ViewEditorPart_LegacyMigrationTitle=Migrate Legacy Domain Model References?
 ViewEditorPart_LoadedPartlyDescription=The view model loading was incomplete. A migration to the latest view model version might be required.\nPlease visit our migration guide for more information.
 ViewEditorPart_LoadedPartlyTitle=Problems while loading the view model
 ViewEditorPart_MigrationErrorText1=An error occurred during the migration of the view model. 
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.project b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.project
index 1ab2735..d815204 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.project
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.project
@@ -6,11 +6,6 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
 			<name>org.eclipse.pde.ManifestBuilder</name>
 			<arguments>
 			</arguments>
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.jdt.core.prefs
index 0309974..5701814 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.jdt.core.prefs
@@ -24,17 +24,9 @@
 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.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
@@ -43,7 +35,6 @@
 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
@@ -130,7 +121,6 @@
 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.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.ide.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4a68177..9b0933e 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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 98313f8..27f2d7c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.migration/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ide.migration/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.migration/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.migration/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e7c8b55..3ecef2a 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.internal.migration;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.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 27c1d5f..543e720 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ide.util/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.util/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.util/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 212d276..aa721a6 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,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Ecore Helper Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.util;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ide.spi.util;version="1.21.0",
- org.eclipse.emf.ecp.internal.ide.util.messages;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.internal;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ide.spi.util;version="1.22.0",
+ org.eclipse.emf.ecp.internal.ide.util.messages;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/pom.xml b/bundles/org.eclipse.emf.ecp.ide.util/pom.xml
index c01d1d4..1f5e445 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.view.service/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ide.view.service/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.view.service/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ide.view.service/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e3d8c66..8141546 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,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE ViewModel Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.view.service
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
- org.eclipse.emf.ecp.ide.view.service;version="1.21.0";
+Export-Package: org.eclipse.emf.ecp.ide.view.internal.service;version="1.22.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
+ org.eclipse.emf.ecp.ide.view.service;version="1.22.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.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/ideviewmdoelregistry.xml
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 49d4519..00a8017 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 af7c6d9..598f028 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Quickfix UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix.ui.e4;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.quickfix.ui.e4.internal;version="1.21.0";x-friends:="org.eclipse.emf.ecp.application.e4"
+Export-Package: org.eclipse.emf.ecp.quickfix.ui.e4.internal;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.quickfix;bundle-version="[1.22.0,1.23.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)"
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 748c1ca..596ee79 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.quickfix/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.quickfix/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.quickfix/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a878091..8a3f83a 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Quickfix Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.quickfix;version="1.21.0",
- org.eclipse.emf.ecp.quickfix.internal;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.quickfix;version="1.22.0",
+ org.eclipse.emf.ecp.quickfix.internal;version="1.22.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
diff --git a/bundles/org.eclipse.emf.ecp.quickfix/pom.xml b/bundles/org.eclipse.emf.ecp.quickfix/pom.xml
index be58a27..d3b6927 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.rap.util/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.rap.util/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.rap.util/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b6354b7..58fac8a 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: RAP Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.rap.util;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/pom.xml b/bundles/org.eclipse.emf.ecp.rap.util/pom.xml
index 6507c00..ae5397c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2da5d17..925b0c0 100644
--- a/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.rap;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.rap.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.rap;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.rap;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="3.8.0",
  org.eclipse.rap.ui;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.rap/pom.xml b/bundles/org.eclipse.emf.ecp.rap/pom.xml
index 0164b53..846bf0b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c52d3b5..7c6c416 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Test Helpers
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.common
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.test.common;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.test.common;version="1.22.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)",
  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
diff --git a/bundles/org.eclipse.emf.ecp.test.common/pom.xml b/bundles/org.eclipse.emf.ecp.test.common/pom.xml
index f7ea462..b13a4d9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/DefaultRealm.java b/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/DefaultRealm.java
index 7a38fcf..9645dcb 100644
--- a/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/DefaultRealm.java
+++ b/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/DefaultRealm.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 2.0
@@ -11,10 +11,14 @@
  * Contributors:
  * http://wiki.eclipse.org/JFace_Data_Binding/Realm
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.test.common;
 
 import org.eclipse.core.databinding.observable.Realm;
+import org.junit.rules.TestRule;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
 
 /**
  * Simple realm implementation that will set itself as default when constructed. Invoke {@link #dispose()} to remove the
@@ -62,4 +66,29 @@
 			setDefault(previousRealm);
 		}
 	}
+
+	/**
+	 * Obtain a JUnit rule that ensures a {@link DefaultRealm} during its execution.
+	 *
+	 * @return a default realm rule
+	 *
+	 * @since 1.22
+	 */
+	public static TestRule rule() {
+		return new TestWatcher() {
+			private DefaultRealm realm;
+
+			@Override
+			protected void starting(Description description) {
+				realm = new DefaultRealm();
+			}
+
+			@Override
+			protected void finished(Description description) {
+				realm.dispose();
+				realm = null;
+			}
+		};
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.e3/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.e3/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.e3/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f823554..8c8d819 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,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Eclipse 3.x Integration
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.e3;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.commands;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.e3;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.linkedView;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.perspective;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.platform;version="1.21.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui",
- org.eclipse.emf.ecp.ui.tester;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.views;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.actions;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.commands;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.e3;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.linkedView;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.perspective;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.platform;version="1.22.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui",
+ org.eclipse.emf.ecp.ui.tester;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.views;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.e3
diff --git a/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml b/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
index 27d689c..e5678b0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 640605d..ec42284 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.application.e4",
- org.eclipse.emf.ecp.ui.e4.handlers;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.e4.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.application.e4",
- org.eclipse.emf.ecp.ui.e4.view;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.internal.e4;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.e4.editor;version="1.22.0";x-friends:="org.eclipse.emf.ecp.application.e4",
+ org.eclipse.emf.ecp.ui.e4.handlers;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.e4.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.application.e4",
+ org.eclipse.emf.ecp.ui.e4.view;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.internal.e4;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.e4.core.services;bundle-version="[1.0.0,3.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 1afe0a5..63fb749 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 85ccbb4..133d9da 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI RWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.rap
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml b/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml
index 77b5782..2284c9b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6f02d6e..438fd71 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.rcp
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml b/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
index d4525e2..e818b88 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui.transaction/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.transaction/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.transaction/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.transaction/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5a560a0..347959c 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Transactional UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.transaction;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.transaction;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.transaction;version="1.22.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.transaction;bundle-version="1.4.0",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml b/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml
index 443e5b7..4de605c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation.e4/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.validation.e4/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.validation.e4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d231035..8903da8 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI Validation E4
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation.e4;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.validation.e4.handler;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.validation.e4.view;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.validation.e4.handler;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.validation.e4.view;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.validation;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.22.0,1.23.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)",
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 15c21d1..4628c41 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.validation/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.validation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5204149..01181a0 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,15 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation View
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ide.migration",
- org.eclipse.emf.ecp.ui.validation;version="1.21.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4"
+Export-Package: org.eclipse.emf.ecp.internal.ui.validation;version="1.22.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ide.migration",
+ org.eclipse.emf.ecp.ui.validation;version="1.22.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.21.0,1.22.0)"
-Import-Package: org.eclipse.e4.core.di.annotations;version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)"
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.e4.core.di.annotations;version="[1.3.0,2.0.0)",
  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",
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml b/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml
index 55b3bdb..a00a98b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/META-INF/MANIFEST.MF
index d227290..7ebf3e1 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Legacy View Model Editor Controls
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.legacy;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
+Bundle-Activator: org.eclipse.emf.ecp.ui.view.internal.editor.controls.legacy.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls.legacy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.emf.ecp.ui.view.internal.editor.controls.legacy;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.internal.editor.controls.legacy.handler;version="1.22.0";x-internal:=true
 Require-Bundle: org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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.workspace.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
-Bundle-Activator: org.eclipse.emf.ecp.ui.view.internal.editor.controls.legacy.Activator
-Export-Package: org.eclipse.emf.ecp.ui.view.internal.editor.controls.legacy;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.view.internal.editor.controls.legacy.handler;version="1.21.0";x-internal:=true
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls.legacy
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/pom.xml
index 7bfd692..5163af4 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls.legacy/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.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/.project b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.project
index 3199e90..3b33eea 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.project
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.project
@@ -41,6 +41,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8d25bff..551e2cd 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,55 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Controls
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emfforms.ide.view.multisegment,org.eclipse.emfforms.ide.view.mappingsegment,org.eclipse.emf.ecp.view.template.tooling",
- org.eclipse.emf.ecp.view.internal.editor.handler;version="1.21.0";
+Export-Package: org.eclipse.emf.ecp.view.internal.editor.controls;version="1.22.0";x-friends:="org.eclipse.emfforms.ide.view.multisegment,org.eclipse.emfforms.ide.view.mappingsegment,org.eclipse.emf.ecp.view.template.tooling",
+ org.eclipse.emf.ecp.view.internal.editor.handler;version="1.22.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.emfforms.ide.view.multisegment,
    org.eclipse.emf.ecp.view.template.tooling",
- org.eclipse.emf.ecp.view.spi.editor.controls;version="1.21.0"
+ org.eclipse.emf.ecp.view.spi.editor.controls;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui;bundle-version="2.8.0",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.bazaar;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)"
-Import-Package: org.eclipse.core.resources;version="0.0.0",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.view.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.22.0,1.23.0)"
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.core.resources;version="0.0.0",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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",
@@ -78,6 +82,8 @@
  OSGI-INF/IterateConditionDmrOpenInNewContextStrategyProvider.xml,
  OSGI-INF/RuleConditionDmrOpenInNewContextStrategyProvider.xml,
  OSGI-INF/IterateConditionDmrNewModelElementStrategyProvider.xml,
- OSGI-INF/RuleConditionDmrControlSWTRendererService.xml
+ OSGI-INF/RuleConditionDmrControlSWTRendererService.xml,
+ OSGI-INF/ReadOnlyConfigurationSWTRendererService.xml,
+ OSGI-INF/tableColumnsRevealProvider.xml
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrNewModelElementStrategyProvider.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrNewModelElementStrategyProvider.xml
index cd89b0e..f34eb7d 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrNewModelElementStrategyProvider.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrNewModelElementStrategyProvider.xml
@@ -4,5 +4,7 @@
    <service>
       <provide interface="org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy$Provider"/>
    </service>
+   <reference bind="setEMFFormsDatabindingEMF" interface="org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF" name="EMFFormsDatabindingEMF"/>
+   <reference bind="setReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
    <implementation class="org.eclipse.emf.ecp.view.internal.editor.handler.IterateConditionDmrNewModelElementStrategyProvider"/>
 </scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrOpenInNewContextStrategyProvider.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrOpenInNewContextStrategyProvider.xml
index 50d1fb6..f7fb64f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrOpenInNewContextStrategyProvider.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/IterateConditionDmrOpenInNewContextStrategyProvider.xml
@@ -4,5 +4,7 @@
    <service>
       <provide interface="org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy$Provider"/>
    </service>
+   <reference bind="setEMFFormsDatabindingEMF" interface="org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF" name="EMFFormsDatabindingEMF"/>
+   <reference bind="setReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
    <implementation class="org.eclipse.emf.ecp.view.internal.editor.handler.IterateConditionDmrOpenInNewContextStrategyProvider"/>
 </scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrNewModelElementStrategyProvider.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrNewModelElementStrategyProvider.xml
index 7a08fd3..c9ad41f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrNewModelElementStrategyProvider.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrNewModelElementStrategyProvider.xml
@@ -4,5 +4,7 @@
    <service>
       <provide interface="org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy$Provider"/>
    </service>
+   <reference bind="setEMFFormsDatabindingEMF" interface="org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF" name="EMFFormsDatabindingEMF"/>
+   <reference bind="setReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
    <implementation class="org.eclipse.emf.ecp.view.internal.editor.handler.LeafConditionDmrNewModelElementStrategyProvider"/>
 </scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrOpenInNewContextStrategyProvider.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrOpenInNewContextStrategyProvider.xml
index dfaa23e..86e3a8e 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrOpenInNewContextStrategyProvider.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/LeafConditionDmrOpenInNewContextStrategyProvider.xml
@@ -4,5 +4,7 @@
    <service>
       <provide interface="org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy$Provider"/>
    </service>
+   <reference bind="setEMFFormsDatabindingEMF" interface="org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF" name="EMFFormsDatabindingEMF"/>
+   <reference bind="setReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
    <implementation class="org.eclipse.emf.ecp.view.internal.editor.handler.LeafConditionDmrOpenInNewContextStrategyProvider"/>
 </scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/ReadOnlyConfigurationSWTRendererService.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/ReadOnlyConfigurationSWTRendererService.xml
new file mode 100644
index 0000000..8dc3114
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/ReadOnlyConfigurationSWTRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="ReadOnlyConfigurationSWTRendererService">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabindingEMF" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF" name="EMFFormsDatabindingEMF"/>
+   <reference bind="setreportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="reportService"/>
+   <implementation class="org.eclipse.emf.ecp.view.internal.editor.controls.ReadOnlyConfigurationSWTRendererService"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/tableColumnsRevealProvider.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/tableColumnsRevealProvider.xml
new file mode 100644
index 0000000..e177a58
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/tableColumnsRevealProvider.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="tableColumnsRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.editor.controls.TableColumnsRevealProvider"/>
+</scr:component>
\ No newline at end of file
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 aada12d..8744e6d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/ColumnConfigurationDMRRendererReferenceService.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnConfigurationDMRRendererReferenceService.java
index b8e8948..cfe76db 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnConfigurationDMRRendererReferenceService.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnConfigurationDMRRendererReferenceService.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2017 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2017-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 2.0
@@ -10,41 +10,47 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Lucas Koehler - adapt to work with segments, too
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
+import java.util.HashSet;
 import java.util.LinkedHashSet;
+import java.util.Optional;
 import java.util.Set;
 
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.spi.common.ui.SelectModelElementWizardFactory;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.table.model.VSingleColumnConfiguration;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableColumnConfiguration;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.view.spi.multisegment.model.MultiSegmentUtil;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
 
 /**
- * Special {@link ReferenceService} allowing stream lined DMR selection for the width configuration.
+ * Special {@link ReferenceService} allowing stream lined DMR selection for {@link VTableColumnConfiguration
+ * VTableColumnConfigurations}.
  *
  * @author Johannes Faltermeier
  *
  */
 public class ColumnConfigurationDMRRendererReferenceService implements ReferenceService {
 
-	private final Class<? extends VSingleColumnConfiguration> columnConfigClass;
+	private final Class<? extends VTableColumnConfiguration> columnConfigClass;
 
 	/**
 	 * Constructor.
 	 *
-	 * @param columnConfigClass the {@link VSingleColumnConfiguration} based class to be filtered
+	 * @param columnConfigClass the {@link VTableColumnConfiguration} based class to be filtered
 	 */
 	public ColumnConfigurationDMRRendererReferenceService(
-		Class<? extends VSingleColumnConfiguration> columnConfigClass) {
+		Class<? extends VTableColumnConfiguration> columnConfigClass) {
 		this.columnConfigClass = columnConfigClass;
 	}
 
@@ -71,9 +77,10 @@
 	}
 
 	@Override
-	public Optional<EObject> addNewModelElements(EObject eObject, EReference eReference, boolean openInNewContext) {
+	public org.eclipse.emfforms.common.Optional<EObject> addNewModelElements(EObject eObject, EReference eReference,
+		boolean openInNewContext) {
 		/* no-op */
-		return Optional.empty();
+		return org.eclipse.emfforms.common.Optional.empty();
 	}
 
 	@SuppressWarnings("restriction")
@@ -83,24 +90,17 @@
 			return;
 		}
 		final VTableControl tableControl = VTableControl.class.cast(eObject.eContainer());
-		if (!VTableDomainModelReference.class.isInstance(tableControl.getDomainModelReference())) {
+		final Optional<Set<EObject>> unconfiguredColumns = getUnconfiguredColumns(
+			tableControl.getDomainModelReference());
+		if (!unconfiguredColumns.isPresent()) {
 			return;
 		}
-		final VTableDomainModelReference tableDMR = VTableDomainModelReference.class
-			.cast(tableControl.getDomainModelReference());
-		final Set<EObject> unconfiguredColumns = new LinkedHashSet<EObject>(
-			tableDMR.getColumnDomainModelReferences());
-		for (final VTableColumnConfiguration columnConfiguration : tableControl.getColumnConfigurations()) {
-			if (!columnConfigClass.isInstance(columnConfiguration)) {
-				continue;
-			}
-			unconfiguredColumns
-				.remove(columnConfigClass.cast(columnConfiguration).getColumnDomainReference());
-		}
+
+		unconfiguredColumns.get().removeAll(getConfiguredColumns(tableControl, eReference));
 
 		final Set<EObject> selectedColumns = SelectModelElementWizardFactory
 			.openModelElementSelectionDialog(
-				unconfiguredColumns,
+				unconfiguredColumns.get(),
 				eReference.isMany());
 
 		org.eclipse.emf.ecp.internal.edit.ECPControlHelper.addModelElementsInReference(
@@ -110,6 +110,46 @@
 			AdapterFactoryEditingDomain.getEditingDomainFor(eObject));
 	}
 
+	/**
+	 * @param dmr The DMR defining the table
+	 * @return The set of all column dmrs which are not configured by a configuration of this service's
+	 *         <code>columnConfigClass</code>. Returns nothing if the list of column dmrs cannot be retrieved from the
+	 *         given dmr.
+	 */
+	private Optional<Set<EObject>> getUnconfiguredColumns(VDomainModelReference dmr) {
+		Set<EObject> result = null;
+		if (!dmr.getSegments().isEmpty()) {
+			final Optional<VMultiDomainModelReferenceSegment> multiSegment = MultiSegmentUtil.getMultiSegment(dmr);
+			if (multiSegment.isPresent()) {
+				result = new LinkedHashSet<>(multiSegment.get().getChildDomainModelReferences());
+			}
+		} else if (dmr instanceof VTableDomainModelReference) {
+			final VTableDomainModelReference tableDmr = (VTableDomainModelReference) dmr;
+			result = new LinkedHashSet<>(tableDmr.getColumnDomainModelReferences());
+		}
+		return Optional.ofNullable(result);
+	}
+
+	/**
+	 * @return The set of all column dmrs which are already configured by a configuration of this service's
+	 *         <code>columnConfigClass</code>. May return an empty set but never <code>null</code>.
+	 */
+	@SuppressWarnings("unchecked")
+	private Set<EObject> getConfiguredColumns(VTableControl tableControl, EReference eReference) {
+		final Set<EObject> result = new HashSet<>();
+		for (final VTableColumnConfiguration columnConfiguration : tableControl.getColumnConfigurations()) {
+			if (!columnConfigClass.isInstance(columnConfiguration)) {
+				continue;
+			}
+			if (eReference.isMany()) {
+				result.addAll((EList<EObject>) columnConfiguration.eGet(eReference));
+			} else {
+				result.add((EObject) columnConfiguration.eGet(eReference));
+			}
+		}
+		return result;
+	}
+
 	@Override
 	public void openInNewContext(EObject eObject) {
 		/* no-op */
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnEnablementConfigurationDMRRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnEnablementConfigurationDMRRenderer.java
index bd46ae2..80a4221 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnEnablementConfigurationDMRRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ColumnEnablementConfigurationDMRRenderer.java
@@ -24,7 +24,6 @@
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.swt.widgets.Composite;
@@ -48,7 +47,6 @@
 	 * @param vtViewTemplateProvider the view template provider
 	 * @param localizationService the localization service
 	 * @param imageRegistryService the image registry service
-	 * @param emfFormsEditSuppport the edit support
 	 */
 	@Inject
 	// CHECKSTYLE.OFF: ParameterNumber
@@ -60,8 +58,7 @@
 		EMFFormsLabelProvider emfFormsLabelProvider,
 		VTViewTemplateProvider vtViewTemplateProvider,
 		EMFFormsLocalizationService localizationService,
-		ImageRegistryService imageRegistryService,
-		EMFFormsEditSupport emfFormsEditSuppport) {
+		ImageRegistryService imageRegistryService) {
 		// CHECKSTYLE.ON: ParameterNumber
 		super(
 			vElement,
@@ -71,8 +68,7 @@
 			emfFormsLabelProvider,
 			vtViewTemplateProvider,
 			localizationService,
-			imageRegistryService,
-			emfFormsEditSuppport);
+			imageRegistryService);
 	}
 
 	@Override
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 0a379b7..110f85d 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
@@ -11,6 +11,7 @@
  * Contributors:
  * Alexandra Buzila - initial API and implementation
  * Lucas Koehler - Also support DMR segments (Bug 542669)
+ * Christian W. Damus - bugs 527686, 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
@@ -48,12 +49,12 @@
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
 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.VDomainModelReferenceSegment;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.util.VViewResourceImpl;
 import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
@@ -69,6 +70,7 @@
 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.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.databinding.swt.ISWTObservableValue;
@@ -134,6 +136,7 @@
 	private Label setLabel;
 	private Label imageLabel;
 	private Composite contentSetComposite;
+	private Button setBtn;
 
 	@Override
 	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
@@ -315,7 +318,7 @@
 
 	@Override
 	protected Control createSWTControl(Composite parent) throws DatabindingFailedException {
-		final IObservableValue observableValue = getEMFFormsDatabinding()
+		final IObservableValue<?> observableValue = getEMFFormsDatabinding()
 			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
 		eObject = (EObject) ((IObserving) observableValue).getObserved();
 		structuralFeature = (EStructuralFeature) observableValue.getValueType();
@@ -396,7 +399,7 @@
 			}
 		});
 
-		final Button setBtn = createButtonForAction(new NewReferenceAction(getEditingDomain(eObject), eObject,
+		setBtn = createButtonForAction(new NewReferenceAction(getEditingDomain(eObject), eObject,
 			structuralFeature, emfFormsEditSupport, getEMFFormsLabelProvider(), null, getReportService(), getVElement()
 				.getDomainModelReference(),
 			getViewModelContext().getDomainModel()), composite); // getViewModelContext().getService(ReferenceService.class)
@@ -459,6 +462,28 @@
 		return Helper.getRootEClass(getViewModelContext().getDomainModel());
 	}
 
+	@Override
+	protected void rootDomainModelChanged() throws DatabindingFailedException {
+		final IObservableValue<?> observableValue = getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		try {
+			eObject = (EObject) ((IObserving) observableValue).getObserved();
+		} finally {
+			observableValue.dispose();
+		}
+
+		super.rootDomainModelChanged();
+	}
+
+	@Override
+	public void scrollToReveal() {
+		if (canReveal(setBtn) && setBtn.isEnabled()) {
+			scrollToReveal(setBtn);
+		} else {
+			super.scrollToReveal();
+		}
+	}
+
 	/** SelectionAdapter for the set button. */
 	private class SelectionAdapterExtension extends SelectionAdapter {
 
@@ -471,8 +496,6 @@
 
 		@Override
 		public void widgetSelected(SelectionEvent e) {
-			final Collection<EClass> classes = EMFUtils.getSubClasses(eReference.getEReferenceType());
-
 			final EClass eclass = getDmrRootEClass();
 
 			VDomainModelReference reference = null;
@@ -491,6 +514,10 @@
 					editSegmentDmr(eObject, eReference, reference);
 				}
 			} else {
+				final Collection<EClass> classes = EMFUtils.getSubClasses(eReference.getEReferenceType());
+				// Don't allow to create a plain DMR legacy mode
+				classes.remove(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE);
+
 				final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
 					eObject, structuralFeature, getEditingDomain(eObject), eclass,
 					reference == null ? "New Reference Element" : "Configure " + reference.eClass().getName(), //$NON-NLS-1$ //$NON-NLS-2$
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 c6f5509..ac5b046 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
@@ -101,6 +101,8 @@
 			final EClass referenceType = reference.getEReferenceType();
 			final Collection<EClass> dmrEClasses = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 				.getDomainModelReference());
+			// Don't allow to create a plain DMR legacy mode
+			dmrEClasses.remove(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE);
 			final Setting valueDMRSeting = ((LeafConditionImpl) condition).eSetting(RulePackage.eINSTANCE
 				.getLeafCondition_ValueDomainModelReference());
 			final CreateDomainModelReferenceWizard dmrWizard = new CreateDomainModelReferenceWizard(valueDMRSeting,
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererService.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererService.java
index 204567d..f51dd69 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererService.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererService.java
@@ -17,7 +17,6 @@
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
@@ -25,6 +24,7 @@
 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;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
 import org.osgi.service.component.annotations.Component;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionSegmentControlRendererService.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionSegmentControlRendererService.java
index 4f10da6..d2934c0 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionSegmentControlRendererService.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionSegmentControlRendererService.java
@@ -15,7 +15,6 @@
 
 import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
@@ -23,6 +22,7 @@
 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;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
 import org.osgi.service.component.annotations.Component;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ReadOnlyConfigurationSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ReadOnlyConfigurationSWTRenderer.java
new file mode 100644
index 0000000..bc83ce5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ReadOnlyConfigurationSWTRenderer.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.editor.controls;
+
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.edit.spi.ReferenceService;
+import org.eclipse.emf.ecp.view.internal.control.multireference.LinkOnlyMultiReferenceRenderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.table.model.VReadOnlyColumnConfiguration;
+import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+
+/**
+ * Renderer to configure the linked column DMRs for {@link VReadOnlyColumnConfiguration ReadOnlyColumnConfigurations}.
+ * Uses a custom reference service to only show suitable column dmrs for linking.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class ReadOnlyConfigurationSWTRenderer extends LinkOnlyMultiReferenceRenderer {
+
+	private ReferenceService referenceService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param reportService The {@link ReportService}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param imageRegistryService The {@link ImageRegistryService}
+	 */
+	@Inject
+	public ReadOnlyConfigurationSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService, EMFFormsDatabinding emfFormsDatabinding,
+		EMFFormsLabelProvider emfFormsLabelProvider, VTViewTemplateProvider vtViewTemplateProvider,
+		ImageRegistryService imageRegistryService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			imageRegistryService);
+	}
+
+	@Override
+	protected ReferenceService getReferenceService() {
+		if (referenceService == null) {
+			referenceService = new ColumnConfigurationDMRRendererReferenceService(VReadOnlyColumnConfiguration.class);
+		}
+		return referenceService;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ReadOnlyConfigurationSWTRendererService.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ReadOnlyConfigurationSWTRendererService.java
new file mode 100644
index 0000000..a23e298
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ReadOnlyConfigurationSWTRendererService.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.editor.controls;
+
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.VElement;
+import org.eclipse.emf.ecp.view.spi.table.model.VReadOnlyColumnConfiguration;
+import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+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.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+
+/**
+ * Renderer service for {@link ReadOnlyConfigurationSWTRenderer}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@Component(name = "ReadOnlyConfigurationSWTRendererService")
+public class ReadOnlyConfigurationSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabindingEMF databinding;
+	private ReportService reportService;
+
+	/**
+	 * @param databinding {@link EMFFormsDatabindingEMF}
+	 */
+	@Reference(cardinality = ReferenceCardinality.MANDATORY, unbind = "-")
+	public void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
+		this.databinding = databinding;
+	}
+
+	/**
+	 * @param reportService {@link ReportService}
+	 */
+	@Reference(cardinality = ReferenceCardinality.MANDATORY, unbind = "-")
+	public void setreportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VDomainModelReference domainModelReference = VControl.class.cast(vElement).getDomainModelReference();
+		if (domainModelReference == null) {
+			return NOT_APPLICABLE;
+		}
+		try {
+			final IEMFValueProperty valueProperty = databinding.getValueProperty(
+				domainModelReference, viewModelContext.getDomainModel());
+			if (viewModelContext.getDomainModel() instanceof VReadOnlyColumnConfiguration
+				&& valueProperty
+					.getStructuralFeature() == VTablePackage.Literals.READ_ONLY_COLUMN_CONFIGURATION__COLUMN_DOMAIN_REFERENCES) {
+				return 10d;
+			}
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new AbstractReport(ex));
+		}
+
+		return NOT_APPLICABLE;
+	}
+
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return ReadOnlyConfigurationSWTRenderer.class;
+	}
+
+}
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 5a2cc35..bf3363c 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
@@ -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 2.0
@@ -11,6 +11,7 @@
  * Contributors:
  * Eugen - initial API and implementation
  * Johannes Faltermeier - sorting + drag&drop
+ * Christian W. Damus - bug 548592
  *
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
@@ -81,6 +82,7 @@
 import org.eclipse.jface.layout.TableColumnLayout;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
 import org.eclipse.jface.viewers.TreeViewer;
@@ -298,6 +300,21 @@
 	}
 
 	/**
+	 * Select and reveal an {@code object} in my table.
+	 *
+	 * @param object an object to reveal
+	 *
+	 * @since 1.22
+	 */
+	void reveal(Object object) {
+		checkRenderer();
+
+		if (viewer != null) {
+			viewer.setSelection(new StructuredSelection(object), true);
+		}
+	}
+
+	/**
 	 * Adapter set on the {@link VTableControl}.
 	 *
 	 */
@@ -442,6 +459,8 @@
 
 			final Collection<EClass> classes = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 				.getDomainModelReference());
+			// Don't allow to create a plain DMR legacy mode
+			classes.remove(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE);
 
 			final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
 				eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlService.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlService.java
index 8ed98ce..b9b29a6 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlService.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlService.java
@@ -16,7 +16,6 @@
 import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VAttachment;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
@@ -27,6 +26,7 @@
 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;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
 import org.osgi.service.component.annotations.Component;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsRevealProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsRevealProvider.java
new file mode 100644
index 0000000..cbe595d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsRevealProvider.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.editor.controls;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+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.VTablePackage;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+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.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for the Table DMR columns control.
+ */
+@Component(name = "tableColumnsRevealProvider")
+public class TableColumnsRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double tableDMRColumnsBid = 10.0;
+
+	/**
+	 * I bid on the {@code element} if it is a simple {@link VControl} specified by
+	 * a DMR that resolves to the
+	 * {@link VTablePackage#TABLE_DOMAIN_MODEL_REFERENCE__COLUMN_DOMAIN_MODEL_REFERENCES}
+	 * reference.
+	 *
+	 * @param context the view model context in which to resolve the DMR
+	 * @param control the control to bid on
+	 * @param databinding the databinding service in which to resolve the DMR
+	 * @return my bid
+	 * @throws DatabindingFailedException on failure to resolve the DMR
+	 */
+	@Bid
+	public Double canReveal(ViewModelContext context, VControl control, EMFFormsDatabinding databinding)
+		throws DatabindingFailedException {
+
+		Double result = null;
+
+		// Not a specialization like TableControl
+		if (control.eClass() == VViewPackage.Literals.CONTROL) {
+			final IValueProperty<?, ?> property = databinding.getValueProperty(control.getDomainModelReference(),
+				context.getDomainModel());
+			final Object propertyType = property.getValueType();
+			if (propertyType == VTablePackage.Literals.TABLE_DOMAIN_MODEL_REFERENCE__COLUMN_DOMAIN_MODEL_REFERENCES) {
+				result = tableDMRColumnsBid;
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * Create a terminal reveal step to select and reveal the {@code object} in the
+	 * rendered {@code element}.
+	 *
+	 * @param context the view model context in which to find a renderer for the tree
+	 * @param helper a helper for deferred revealing
+	 * @param control the table columns view model
+	 * @param object the object to reveal
+	 * @param databinding the databinding service in which to resolve the DMR
+	 * @return the drill-down reveal step
+	 * @throws DatabindingFailedException on failure to resolve the DMR
+	 */
+	@Create
+	public RevealStep reveal(ViewModelContext context, RevealHelper helper, VControl control, EObject object,
+		EMFFormsDatabinding databinding) throws DatabindingFailedException {
+
+		RevealStep result = RevealStep.FAILED;
+
+		// The domain model is the table control in the view model that is being edited
+		final VTableControl tableControl = (VTableControl) context.getDomainModel();
+		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
+
+		if (tableDMR.getColumnDomainModelReferences().contains(object)) {
+			result = helper.defer(this);
+		}
+
+		return result;
+	}
+
+	@Reveal
+	private RevealStep doReveal(@Renderer TableColumnsDMRTableControl renderer, EObject object) {
+		final VControl control = renderer.getVElement();
+		return RevealStep.reveal(control, object, () -> renderer.reveal(object));
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/WidthConfigurationDMRRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/WidthConfigurationDMRRenderer.java
index b002f32..c62007c 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/WidthConfigurationDMRRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/WidthConfigurationDMRRenderer.java
@@ -24,7 +24,6 @@
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.swt.widgets.Composite;
@@ -48,7 +47,6 @@
 	 * @param vtViewTemplateProvider the view template provider
 	 * @param localizationService the localization service
 	 * @param imageRegistryService the image registry service
-	 * @param emfFormsEditSuppport the edit support
 	 */
 	@Inject
 	// CHECKSTYLE.OFF: ParameterNumber
@@ -60,8 +58,7 @@
 		EMFFormsLabelProvider emfFormsLabelProvider,
 		VTViewTemplateProvider vtViewTemplateProvider,
 		EMFFormsLocalizationService localizationService,
-		ImageRegistryService imageRegistryService,
-		EMFFormsEditSupport emfFormsEditSuppport) {
+		ImageRegistryService imageRegistryService) {
 		// CHECKSTYLE.ON: ParameterNumber
 		super(
 			vElement,
@@ -71,8 +68,7 @@
 			emfFormsLabelProvider,
 			vtViewTemplateProvider,
 			localizationService,
-			imageRegistryService,
-			emfFormsEditSuppport);
+			imageRegistryService);
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/ControlGenerator.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/ControlGenerator.java
index ced8609..df8c81c 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/ControlGenerator.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/ControlGenerator.java
@@ -37,7 +37,6 @@
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VContainer;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
@@ -47,6 +46,7 @@
 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.emfforms.spi.ide.view.segments.ToolingModeUtil;
 
 /** Generates and sets a list of controls to a {@link VView}. */
 public final class ControlGenerator {
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrNewReferenceElementStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrNewReferenceElementStrategyProvider.java
index 441d94f..9034c89 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrNewReferenceElementStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrNewReferenceElementStrategyProvider.java
@@ -20,11 +20,11 @@
 import org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy.Provider;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceServiceCustomizationVendor;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emfforms.bazaar.Create;
 import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Display;
 import org.osgi.service.component.annotations.Component;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrOpenInNewContextStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrOpenInNewContextStrategyProvider.java
index 058d34b..b1b6621 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrOpenInNewContextStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/DmrOpenInNewContextStrategyProvider.java
@@ -25,7 +25,6 @@
 import org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy.Provider;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceServiceCustomizationVendor;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.edit.command.ReplaceCommand;
@@ -33,6 +32,7 @@
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Display;
 import org.osgi.service.component.annotations.Component;
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 a756a3c..bae3f85 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
@@ -15,32 +15,22 @@
 package org.eclipse.emf.ecp.view.internal.editor.handler;
 
 import java.util.Collections;
-import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
-import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.ecp.view.spi.model.VContainer;
 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.treemasterdetail.ui.swt.MasterDetailAction;
 import org.eclipse.emf.edit.command.ChangeCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
@@ -54,45 +44,6 @@
  */
 public class GenerateControlsHandler extends MasterDetailAction {
 
-	private Set<EStructuralFeature> getFeaturesToCreate(final SelectAttributesDialog sad) {
-		final Set<EStructuralFeature> features = sad.getSelectedFeatures();
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new CustomReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			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(rootClass), feature);
-			if (propertyDescriptor != null) {
-				featuresToAdd.add(feature);
-			} else {
-				logInvalidFeature(feature.getName(), sad.getRootClass().getName());
-			}
-		}
-		composedAdapterFactory.dispose();
-		return featuresToAdd;
-	}
-
-	private void logInvalidFeature(String featureName, String eClassName) {
-		final String infoMessage = "Feature " + featureName //$NON-NLS-1$
-			+ " of the class " + eClassName + "could not be rendered because it has no property descriptor."; //$NON-NLS-1$ //$NON-NLS-2$
-		final ILog log = Activator
-			.getDefault()
-			.getLog();
-		log.log(
-			new Status(
-				IStatus.INFO,
-				Activator.PLUGIN_ID, infoMessage));
-	}
-
 	@Override
 	public void execute(final EObject object) {
 		final CallbackFeatureSupplier callBack = new CallbackFeatureSupplier() {
@@ -100,12 +51,11 @@
 			@Override
 			public Set<EStructuralFeature> get(VView view) {
 				final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-				final SelectAttributesDialog sad = new SelectAttributesDialog(new SelectAttributesWizard(), view,
-					view.getRootEClass(),
-					shell);
+				final SelectAttributesWizard selectAttributesWizard = new SelectAttributesWizard(view);
+				final WizardDialog sad = new WizardDialog(shell, selectAttributesWizard);
 				final int result = sad.open();
 				if (result == Window.OK) {
-					return getFeaturesToCreate(sad);
+					return selectAttributesWizard.getSelectedFeatures();
 				}
 				return Collections.emptySet();
 			}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnSegmentDmrsHandler.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnSegmentDmrsHandler.java
index e26b8fa..b9c74d8 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnSegmentDmrsHandler.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnSegmentDmrsHandler.java
@@ -28,7 +28,6 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
 import org.eclipse.emf.ecp.view.spi.model.VFeatureDomainModelReferenceSegment;
@@ -42,6 +41,7 @@
 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.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.view.spi.multisegment.model.MultiSegmentUtil;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentPackage;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsForSubclassesHandler.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsForSubclassesHandler.java
index e142934..d14dd23 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsForSubclassesHandler.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsForSubclassesHandler.java
@@ -27,7 +27,6 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 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.VViewFactory;
@@ -40,6 +39,7 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsHandler.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsHandler.java
index 0154718..b07d7b2 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsHandler.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateTableColumnsHandler.java
@@ -27,7 +27,6 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 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.VViewFactory;
@@ -40,6 +39,7 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrNewModelElementStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrNewModelElementStrategyProvider.java
index bcf24cb..9b66453 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrNewModelElementStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrNewModelElementStrategyProvider.java
@@ -19,7 +19,10 @@
 import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
 import org.eclipse.emf.ecp.view.spi.rule.model.IterateCondition;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
 /**
  * Edits segment based item domain model references for {@link IterateCondition IterateConditions}.
@@ -33,6 +36,18 @@
 	extends RuleConditionDmrNewModelElementStrategyProvider {
 
 	@Override
+	@Reference(unbind = "-")
+	protected void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
+		super.setEMFFormsDatabindingEMF(databinding);
+	}
+
+	@Override
+	@Reference(unbind = "-")
+	protected void setReportService(ReportService reportService) {
+		super.setReportService(reportService);
+	}
+
+	@Override
 	protected boolean handles(EObject owner, EReference reference) {
 		return isSegmentToolingEnabled()
 			&& owner instanceof IterateCondition
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrOpenInNewContextStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrOpenInNewContextStrategyProvider.java
index 8b6f5f0..abf2362 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrOpenInNewContextStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/IterateConditionDmrOpenInNewContextStrategyProvider.java
@@ -19,7 +19,10 @@
 import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
 import org.eclipse.emf.ecp.view.spi.rule.model.IterateCondition;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
 /**
  * Creates segment based item domain model references for {@link IterateCondition IterateConditions}.
@@ -33,6 +36,18 @@
 	extends RuleConditionDmrOpenInNewContextStrategyProvider {
 
 	@Override
+	@Reference(unbind = "-")
+	protected void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
+		super.setEMFFormsDatabindingEMF(databinding);
+	}
+
+	@Override
+	@Reference(unbind = "-")
+	protected void setReportService(ReportService reportService) {
+		super.setReportService(reportService);
+	}
+
+	@Override
 	protected boolean handles(EObject owner, EReference reference) {
 		return isSegmentToolingEnabled()
 			&& owner instanceof IterateCondition
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrNewModelElementStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrNewModelElementStrategyProvider.java
index 48ab6ae..c4f6a7a 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrNewModelElementStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrNewModelElementStrategyProvider.java
@@ -21,7 +21,10 @@
 import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
 import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
 /**
  * This provider registers a {@link CreateNewModelElementStrategy} to create <strong>segment based</strong> domain model
@@ -35,6 +38,18 @@
 	extends RuleConditionDmrNewModelElementStrategyProvider {
 
 	@Override
+	@Reference(unbind = "-")
+	protected void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
+		super.setEMFFormsDatabindingEMF(databinding);
+	}
+
+	@Override
+	@Reference(unbind = "-")
+	protected void setReportService(ReportService reportService) {
+		super.setReportService(reportService);
+	}
+
+	@Override
 	protected boolean handles(EObject owner, EReference reference) {
 		return isSegmentToolingEnabled()
 			&& owner instanceof LeafCondition
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrOpenInNewContextStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrOpenInNewContextStrategyProvider.java
index a79796f..2d15d48 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrOpenInNewContextStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/LeafConditionDmrOpenInNewContextStrategyProvider.java
@@ -20,7 +20,10 @@
 import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
 import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
 /**
  * This provider registers a {@link org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy
@@ -34,6 +37,18 @@
 public class LeafConditionDmrOpenInNewContextStrategyProvider extends RuleConditionDmrOpenInNewContextStrategyProvider {
 
 	@Override
+	@Reference(unbind = "-")
+	protected void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
+		super.setEMFFormsDatabindingEMF(databinding);
+	}
+
+	@Override
+	@Reference(unbind = "-")
+	protected void setReportService(ReportService reportService) {
+		super.setReportService(reportService);
+	}
+
+	@Override
 	protected boolean handles(EObject owner, EReference reference) {
 		return isSegmentToolingEnabled()
 			&& owner instanceof LeafCondition
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrNewModelElementStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrNewModelElementStrategyProvider.java
index a85ddab..bb30d52 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrNewModelElementStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrNewModelElementStrategyProvider.java
@@ -23,7 +23,6 @@
 import org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy.Provider;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceServiceCustomizationVendor;
 import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.rule.RuleConditionDmrUtil;
@@ -33,6 +32,7 @@
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Display;
 import org.osgi.service.component.annotations.Component;
@@ -60,7 +60,7 @@
 	 * @param databinding The {@link EMFFormsDatabindingEMF}
 	 */
 	@Reference(unbind = "-")
-	void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
+	protected void setEMFFormsDatabindingEMF(EMFFormsDatabindingEMF databinding) {
 		this.databinding = databinding;
 	}
 
@@ -70,7 +70,7 @@
 	 * @param reportService The {@link ReportService}
 	 */
 	@Reference(unbind = "-")
-	void setReportService(ReportService reportService) {
+	protected void setReportService(ReportService reportService) {
 		this.reportService = reportService;
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrOpenInNewContextStrategyProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrOpenInNewContextStrategyProvider.java
index 1ef31ea..ead30e5 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrOpenInNewContextStrategyProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/RuleConditionDmrOpenInNewContextStrategyProvider.java
@@ -25,7 +25,6 @@
 import org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy.Provider;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceServiceCustomizationVendor;
 import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.rule.RuleConditionDmrUtil;
@@ -37,6 +36,7 @@
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Display;
 import org.osgi.service.component.annotations.Component;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesDialog.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesDialog.java
deleted file mode 100644
index 8f24b18..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesDialog.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011-2013 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 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- *
- *******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.editor.handler;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Dialog for selecting the attributes for which controls should be generated.
- *
- * @author Eugen Neufeld
- * @author Alexandra Buzila
- */
-public class SelectAttributesDialog extends WizardDialog {
-
-	private ComposedAdapterFactory composedAdapterFactory;
-	private AdapterFactoryLabelProvider labelProvider;
-	private final VView view;
-	private final Set<EStructuralFeature> selectedFeatures = new LinkedHashSet<EStructuralFeature>();
-	private final EClass rootClass;
-	private static SelectAttributesWizard wizard;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param view for identifying the attributes which are not referenced yet
-	 * @param rootClass the rootClass of the view
-	 * @param parentShell the shell for creating the dialog
-	 */
-	public SelectAttributesDialog(SelectAttributesWizard wiz, VView view, EClass rootClass, Shell parentShell) {
-		super(parentShell, wiz);
-		wizard = wiz;
-		this.view = view;
-		this.rootClass = rootClass;
-		wizard.setRootEClass(rootClass);
-		wizard.setView(view);
-
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	@Override
-	public boolean close() {
-		if (labelProvider != null) {
-			labelProvider.dispose();
-		}
-		if (composedAdapterFactory != null) {
-			composedAdapterFactory.dispose();
-		}
-		return super.close();
-	}
-
-	/** @return the set of features selected in the dialog, for which controls should be generated. */
-	public Set<EStructuralFeature> getSelectedFeatures() {
-		return wizard.getSelectedFeatures();
-	}
-
-	/** @return the rootEClass the dialog is displaying the attributes for. */
-	public EClass getRootClass() {
-		return wizard.getRootEClass();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.jface.wizard.WizardDialog#backPressed()
-	 */
-	@Override
-	protected void backPressed() {
-
-		wizard.backPressed();
-		super.backPressed();
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizard.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizard.java
index a2178b2..14b6c50 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizard.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizard.java
@@ -18,7 +18,6 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
 
 /**
@@ -27,69 +26,39 @@
  */
 public class SelectAttributesWizard extends Wizard {
 
-	private SelectDataSegmentWizardPage selectDataSegmentWizardPage;
 	private SelectAttributesWizardPage selectAttributesWizardPage;
-	private EClass rootClass;
-	private VView view;
+	private final EClass rootClass;
+	private final VView view;
 	private Set<EStructuralFeature> selectedFeatures;
 
+	/**
+	 * Constructor.
+	 * 
+	 * @param view The {@link VView} the Controls are generated for.
+	 */
+	public SelectAttributesWizard(VView view) {
+		this.view = view;
+		rootClass = view.getRootEClass();
+	}
+
 	@Override
 	public void addPages() {
-		selectDataSegmentWizardPage = new SelectDataSegmentWizardPage();
-		selectDataSegmentWizardPage.setTitle("Select Data Segment"); //$NON-NLS-1$
-		selectDataSegmentWizardPage.setDescription("Select an EClass."); //$NON-NLS-1$
-		selectDataSegmentWizardPage.setView(view);
-		addPage(selectDataSegmentWizardPage);
-
 		selectAttributesWizardPage = new SelectAttributesWizardPage();
 		selectAttributesWizardPage
 			.setDescription("Select the attributes for which controls should be generated."); //$NON-NLS-1$
 		selectAttributesWizardPage.setTitle("Select Attributes"); //$NON-NLS-1$
+
+		selectAttributesWizardPage.setRootClass(rootClass);
+		selectAttributesWizardPage.setView(view);
 		addPage(selectAttributesWizardPage);
 
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.jface.wizard.Wizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
-	 */
-	@Override
-	public IWizardPage getNextPage(IWizardPage page) {
-		if (SelectDataSegmentWizardPage.class.isInstance(page)) {
-			final SelectDataSegmentWizardPage selectPage = (SelectDataSegmentWizardPage) page;
-			if (selectPage != null) {
-				if (selectAttributesWizardPage == null) {
-					selectAttributesWizardPage = new SelectAttributesWizardPage();
-					selectAttributesWizardPage
-						.setDescription("Select the attributes for which controls should be generated."); //$NON-NLS-1$
-					selectAttributesWizardPage.setTitle("Select Attributes"); //$NON-NLS-1$
-					addPage(selectAttributesWizardPage);
-				}
-				rootClass = selectPage.getSelectedDataSegment();
-				selectAttributesWizardPage.setRootClass(rootClass);
-				selectAttributesWizardPage.setView(view);
-			}
-			return selectAttributesWizardPage;
-		}
-		return null;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.jface.wizard.Wizard#canFinish()
-	 */
 	@Override
 	public boolean canFinish() {
-		return selectAttributesWizardPage != null && !selectAttributesWizardPage.getSelectedFeatures().isEmpty();
+		return !selectAttributesWizardPage.getSelectedFeatures().isEmpty();
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
 	@Override
 	public boolean performFinish() {
 		selectedFeatures = selectAttributesWizardPage.getSelectedFeatures();
@@ -103,37 +72,4 @@
 	public Set<EStructuralFeature> getSelectedFeatures() {
 		return selectedFeatures;
 	}
-
-	/**
-	 * @param rootClass the {@link EClass} to select attributes from
-	 */
-	protected void setRootEClass(EClass rootClass) {
-		this.rootClass = rootClass;
-
-	}
-
-	/**
-	 * @return rootClass
-	 */
-	protected EClass getRootEClass() {
-		return rootClass;
-
-	}
-
-	/**
-	 * @param view The VView to use
-	 */
-	protected void setView(VView view) {
-		this.view = view;
-
-	}
-
-	/**
-	 *
-	 */
-	public void backPressed() {
-		if (selectAttributesWizardPage != null && selectAttributesWizardPage.isCurrentPage()) {
-			selectAttributesWizardPage.clearSelection();
-		}
-	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectDataSegmentWizardPage.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectDataSegmentWizardPage.java
deleted file mode 100644
index 6b16c3e..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectDataSegmentWizardPage.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * 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 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Alexandra Buzila - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.editor.handler;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-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;
-import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author Alexandra Buzila
- *
- */
-public class SelectDataSegmentWizardPage extends WizardPage {
-
-	/**
-	 * @author Jonas
-	 *
-	 */
-	private final class DataSegmentTreeContentProvider implements ITreeContentProvider {
-		@Override
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// TODO Auto-generated method stub
-		}
-
-		@Override
-		public void dispose() {
-			// TODO Auto-generated method stub
-		}
-
-		@Override
-		public boolean hasChildren(Object element) {
-
-			if (VView.class.isInstance(element)) {
-				return true;
-			}
-			if (EPackage.class.isInstance(element)) {
-				return true;
-			}
-			if (EClass.class.isInstance(element)) {
-				final EClass eClass = (EClass) element;
-				final boolean hasReferences = !eClass.getEAllReferences().isEmpty();
-				return hasReferences;
-
-			}
-			if (EReference.class.isInstance(element)) {
-				final EReference eReference = (EReference) element;
-				return eReference.isContainment() && !eReference.isMany()
-					&& hasChildren(eReference.getEReferenceType());
-			}
-			return false;
-		}
-
-		@Override
-		public Object getParent(Object element) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		@Override
-		public Object[] getChildren(Object parentElement) {
-
-			if (VView.class.isInstance(parentElement)) {
-				final Object[] children = new Object[] { view.getRootEClass() };
-				return children;
-			}
-			if (EPackage.class.isInstance(parentElement)) {
-				final Set<Object> children = new LinkedHashSet<Object>();
-				children.addAll(EPackage.class.cast(parentElement).getESubpackages());
-				for (final EObject obj : EPackage.class.cast(parentElement).getEClassifiers()) {
-					if (EClass.class.isInstance(obj)) {
-						children.add(obj);
-					}
-				}
-				return children.toArray();
-			}
-			if (EClass.class.isInstance(parentElement)) {
-				final EClass eClass = (EClass) parentElement;
-				final Set<Object> result = getElementsForEClass(eClass);
-				return result.toArray();
-			}
-			if (EReference.class.isInstance(parentElement)) {
-				final EReference eReference = (EReference) parentElement;
-				final Set<Object> result = getElementsForEClass(eReference.getEReferenceType());
-				return result.toArray();
-			}
-			return null;
-		}
-
-		private Set<Object> getElementsForEClass(EClass eClass) {
-			final Set<Object> result = new LinkedHashSet<Object>();
-			if (eClass.isAbstract() || eClass.isInterface()) {
-				// find eClasses which are not abstract
-				for (final EClassifier eClassifier : eClass.getEPackage().getEClassifiers()) {
-					if (eClass != eClassifier && EClass.class.isInstance(eClassifier)
-						&& eClass.isSuperTypeOf((EClass) eClassifier)) {
-						result.add(eClassifier);
-					}
-				}
-			} else {
-				for (final EReference ref : eClass.getEAllReferences()) {
-					if (!ref.isMany() && ref.isContainment()) {
-						result.add(ref);
-					}
-				}
-			}
-			return result;
-		}
-	}
-
-	private TreeViewer treeViewer;
-
-	private EClass selectedDataSegment;
-
-	/**
-	 * @return the selectedDataSegment
-	 */
-	public EClass getSelectedDataSegment() {
-		return selectedDataSegment;
-	}
-
-	private VView view;
-
-	/**
-	 * Default constructor.
-	 */
-	protected SelectDataSegmentWizardPage() {
-		super("Select Data Segment");
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	@Override
-	public void createControl(Composite parent) {
-
-		if (view != null) {
-
-			final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-				new CustomReflectiveItemProviderAdapterFactory(),
-				new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-			final AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
-
-			treeViewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
-			treeViewer.setContentProvider(getContentProvider(adapterFactory));
-			treeViewer.setLabelProvider(labelProvider);
-			treeViewer.setInput(view);
-			treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-				@Override
-				public void selectionChanged(SelectionChangedEvent event) {
-					selectedDataSegment = null;
-					if (((IStructuredSelection) event.getSelection()).getFirstElement() instanceof EClass) {
-						selectedDataSegment = (EClass) ((IStructuredSelection) event.getSelection()).getFirstElement();
-					} else {
-						if (((IStructuredSelection) event.getSelection()).getFirstElement() instanceof EReference) {
-							final EReference ref = (EReference) ((IStructuredSelection) event.getSelection())
-								.getFirstElement();
-							selectedDataSegment = ref.getEReferenceType();
-						}
-					}
-					setPageComplete(selectedDataSegment != null);
-				}
-			});
-			treeViewer.expandToLevel(2);
-		}
-
-		setControl(treeViewer.getControl());
-		setPageComplete(false);
-	}
-
-	private ITreeContentProvider getContentProvider(final AdapterFactory adapterFactory) {
-		return new DataSegmentTreeContentProvider();
-	}
-
-	/**
-	 * @return the view
-	 */
-	public VView getView() {
-		return view;
-	}
-
-	/**
-	 * @param view the view to set
-	 */
-	public void setView(VView view) {
-		this.view = view;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/TableColumnsDmrViewServiceFactory.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/TableColumnsDmrViewServiceFactory.java
index ed42f8a..4b0ca7a 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/TableColumnsDmrViewServiceFactory.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/TableColumnsDmrViewServiceFactory.java
@@ -13,11 +13,11 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.handler;
 
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 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.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.osgi.service.component.annotations.Component;
 
 /**
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/ToolingModeUtil.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/ToolingModeUtil.java
index c1e1e80..ca8ee2b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/ToolingModeUtil.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/ToolingModeUtil.java
@@ -10,33 +10,25 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - fix API breakage
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.editor.controls;
 
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emfforms.spi.common.report.AbstractReport;
-import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
-
 /**
  * Utility class that allows to query whether segment or dmr based tooling is used.
  *
  * @author Lucas Koehler
  * @since 1.20
- *
+ * @deprecated Since the 1.22 release, use the {@link org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil} API,
+ *             instead.
  */
+@Deprecated
 public final class ToolingModeUtil {
 
 	/**
 	 * This flag enables the automatic generation of segments from existing DMRs.
 	 */
-	public static final String ENABLE_SEGMENT_TOOLING = "-enableSegmentTooling"; //$NON-NLS-1$
-	private static Boolean isSegmentToolingEnabled;
+	public static final String ENABLE_SEGMENT_TOOLING = org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil.ENABLE_SEGMENT_TOOLING;
 
 	// Utility classes should not be instantiated
 	private ToolingModeUtil() {
@@ -49,24 +41,7 @@
 	 *         created
 	 */
 	public static boolean isSegmentToolingEnabled() {
-		if (isSegmentToolingEnabled == null) {
-			final String[] applicationArgs = Platform.getApplicationArgs();
-			isSegmentToolingEnabled = false;
-			Arrays.stream(applicationArgs).filter(ENABLE_SEGMENT_TOOLING::equals).findFirst()
-				.ifPresent(s -> isSegmentToolingEnabled = true);
-			if (isSegmentToolingEnabled) {
-				report(new AbstractReport("Segment based view model tooling is enabled.", IStatus.INFO)); //$NON-NLS-1$
-			}
-		}
-		return isSegmentToolingEnabled;
+		return org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil.isSegmentToolingEnabled();
 	}
 
-	private static void report(AbstractReport report) {
-		final BundleContext bundleContext = FrameworkUtil.getBundle(ToolingModeUtil.class).getBundleContext();
-		final ServiceReference<ReportService> serviceReference = bundleContext
-			.getServiceReference(ReportService.class);
-		final ReportService reportService = bundleContext.getService(serviceReference);
-		reportService.report(report);
-		bundleContext.ungetService(serviceReference);
-	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 064cb05..5202178 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.view.linewrapper;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.internal.ui.view.linewrapper;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.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 31fba79..2dedeb9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 fbb9fd6..2cd4e69 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,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dependency Injection SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt.di;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.view.swt.di.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.view.swt.di.util;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.ui.view.swt.di.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.swt.di.util;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.locale;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.eclipse.swt.graphics;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0",
  org.osgi.framework;version="1.8.0"
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 3dd8eb8..3c8a8c0 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/.project b/bundles/org.eclipse.emf.ecp.ui.view.swt/.project
index dd80a93..4be531f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/.project
@@ -46,6 +46,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>

 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>

 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>

-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>

 	</natures>

 </projectDescription>

diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e6e28b4..bc90c4b 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,33 +2,41 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.ui.view.swt.reference;version="1.21.0",
- org.eclipse.emf.ecp.view.internal.swt;version="1.21.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.21.0",
- org.eclipse.emf.ecp.view.spi.swt.layout;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.swt.reporting;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.swt.selection;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.swt.services;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.22.0",
+ org.eclipse.emf.ecp.ui.view.swt.reference;version="1.22.0",
+ org.eclipse.emf.ecp.view.internal.swt;version="1.22.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.22.0",
+ org.eclipse.emf.ecp.view.spi.swt.layout;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.swt.masterdetail;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.swt.reporting;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.swt.selection;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.swt.services;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emfforms.core.bazaar;bundle-version="[1.21.0,1.22.0)"
-Import-Package: org.eclipse.core.commands;version="0.0.0",
- org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)"
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.core.commands;version="0.0.0",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.spi.view.template.service;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.label.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.emfforms.spi.view.annotation.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.0)",
  org.eclipse.jface;version="0.0.0",
  org.eclipse.jface.action;version="0.0.0",
  org.eclipse.jface.dialogs;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/l10n/bundle.properties
index d10183f..8bfd2a7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/l10n/bundle.properties
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/l10n/bundle.properties
@@ -1,3 +1,6 @@
 #Properties file for org.eclipse.emf.ecp.ui.view.swt
 Bundle-Vendor = Eclipse Modeling Project
-Bundle-Name = SWT Renderer
\ No newline at end of file
+Bundle-Name = SWT Renderer
+
+noDetails=No selection or no details available for selection.
+renderFailed=Failed to render the view: {0}. Please see the error log for details.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceServiceFactory.xml b/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceServiceFactory.xml
index c0c3e19..fda8781 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceServiceFactory.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceServiceFactory.xml
@@ -9,4 +9,5 @@
    <reference bind="addEObjectSelectionStrategyProvider" cardinality="0..n" interface="org.eclipse.emf.ecp.ui.view.swt.reference.EObjectSelectionStrategy$Provider" name="EObjectSelectionStrategyProvider" policy="dynamic" unbind="removeEObjectSelectionStrategyProvider"/>
    <reference bind="addOpenInNewContextStrategyProvider" cardinality="0..n" interface="org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy$Provider" name="OpenInNewContextStrategyProvider" policy="dynamic" unbind="removeOpenInNewContextStrategyProvider"/>
    <reference bind="addReferenceStrategyProvider" cardinality="0..n" interface="org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceStrategy$Provider" name="ReferenceStrategyProvider" policy="dynamic" unbind="removeReferenceStrategyProvider"/>
+   <reference bind="addReferenceTableColumnStrategyProvider" cardinality="0..n" interface="org.eclipse.emf.ecp.ui.view.swt.reference.SelectionCompositeStrategy$Provider" name="ReferenceTableColumnStrategyProvider" policy="dynamic" unbind="removeReferenceTableColumnStrategyProvider"/>
 </scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/build.properties b/bundles/org.eclipse.emf.ecp.ui.view.swt/build.properties
index 625d78f..3430ec7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/build.properties
@@ -5,5 +5,6 @@
                plugin.xml,\
                schema/,\
                OSGI-INF/,\
-               about.html
+               about.html,\
+               templates/
 src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.ui.view.swt/plugin.xml
index 60a969f..1266680 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/plugin.xml
@@ -1,8 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse version="3.4"?><plugin>
    <extension-point id="renderers" name="ECP View SWT Renderer" schema="schema/renderers.exsd"/>
    <extension-point id="additionalRenderers" name="Addition Renderers" schema="schema/additionalRenderers.exsd"/>
    <extension-point id="layoutProvider" name="Layout Provider" schema="schema/layoutProvider.exsd"/>
 
+   <extension point="org.eclipse.emf.ecp.view.template">
+      <viewTemplate xmi="templates/details.template"/>
+   </extension>
 </plugin>
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 7ba4453..c7d9f26 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.21.0-SNAPSHOT</version>

+    <version>1.22.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/DefaultReferenceService.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService.java
index 8072219..449d209 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService.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 2.0
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
- * Christian W. Damus - bug 529542
+ * Christian W. Damus - bugs 529542, 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.ui.view.swt;
 
@@ -25,15 +25,18 @@
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.internal.edit.ECPControlHelper;
 import org.eclipse.emf.ecp.spi.common.ui.SelectModelElementWizardFactory;
+import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.ui.view.swt.reference.AttachmentStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.EObjectSelectionStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceStrategy;
+import org.eclipse.emf.ecp.ui.view.swt.reference.SelectionCompositeStrategy;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emfforms.common.Optional;
 import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.swt.widgets.Display;
 
 /**
@@ -83,6 +86,7 @@
 	private AttachmentStrategy attachmentStrategy = AttachmentStrategy.DEFAULT;
 	private ReferenceStrategy referenceStrategy = ReferenceStrategy.DEFAULT;
 	private OpenInNewContextStrategy openInNewContextStrategy = OpenInNewContextStrategy.DEFAULT;
+	private SelectionCompositeStrategy selectionCompositeStrategy = SelectionCompositeStrategy.DEFAULT;
 
 	@Override
 	public void instantiate(ViewModelContext context) {
@@ -159,8 +163,15 @@
 			eobjectSelectionStrategy.collectExistingObjects(eObject, eReference, elements));
 		ECPControlHelper.removeExistingReferences(eObject, eReference, elements);
 
-		final Set<EObject> addedElements = SelectModelElementWizardFactory
-			.openModelElementSelectionDialog(elements, eReference.isMany());
+		final SelectionComposite<? extends StructuredViewer> selectionComposite = selectionCompositeStrategy
+			.getSelectionViewer(eObject, eReference, elements);
+		final Set<EObject> addedElements;
+		if (selectionComposite == null) {
+			addedElements = SelectModelElementWizardFactory
+				.openModelElementSelectionDialog(elements, eReference.isMany());
+		} else {
+			addedElements = SelectModelElementWizardFactory.openModelElementSelectionDialog(selectionComposite);
+		}
 
 		// Don't invoke the Bazaar machinery to find a strategy just to add no elements
 		if (!addedElements.isEmpty()) {
@@ -242,4 +253,19 @@
 		openInNewContextStrategy = strategy;
 	}
 
+	/**
+	 * Set the strategy for creation of the table composite to present in the selection dialog.
+	 *
+	 * @param strategy a table column strategy to set
+	 *
+	 * @since 1.22
+	 */
+	void setSelectionCompositeStrategyy(SelectionCompositeStrategy strategy) {
+		if (strategy == null) {
+			strategy = SelectionCompositeStrategy.DEFAULT;
+		}
+
+		selectionCompositeStrategy = strategy;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceServiceFactory.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceServiceFactory.java
index 9a760d9..b08d55b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceServiceFactory.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceServiceFactory.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 2.0
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
- * Christian W. Damus - bug 529542
+ * Christian W. Damus - bugs 529542, 547787
  * Lucas Koehler - refactored common bazaar functionality out
  ******************************************************************************/
 package org.eclipse.emf.ecp.ui.view.swt;
@@ -25,20 +25,24 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
+import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.ui.view.swt.reference.AttachmentStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.EObjectSelectionStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.OpenInNewContextStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceStrategyUtil;
+import org.eclipse.emf.ecp.ui.view.swt.reference.SelectionCompositeStrategy;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emfforms.bazaar.Bazaar;
+import org.eclipse.emfforms.bazaar.BazaarContext;
 import org.eclipse.emfforms.common.Optional;
 import org.eclipse.emfforms.spi.bazaar.BazaarUtil;
 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.eclipse.jface.viewers.StructuredViewer;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
@@ -67,6 +71,8 @@
 		.createBazaar(ReferenceStrategy.DEFAULT);
 	private final Bazaar<OpenInNewContextStrategy> openInNewContextStrategyBazaar = BazaarUtil.createBazaar(
 		OpenInNewContextStrategy.DEFAULT);
+	private final Bazaar<SelectionCompositeStrategy> selectionCompositeStrategyBazaar = BazaarUtil.createBazaar(
+		SelectionCompositeStrategy.DEFAULT);
 
 	/**
 	 * Initializes me.
@@ -191,6 +197,25 @@
 	}
 
 	/**
+	 * Add a selection composite strategy provider.
+	 *
+	 * @param provider the provider to add
+	 */
+	@Reference(cardinality = MULTIPLE, policy = DYNAMIC)
+	void addReferenceTableColumnStrategyProvider(SelectionCompositeStrategy.Provider provider) {
+		selectionCompositeStrategyBazaar.addVendor(provider);
+	}
+
+	/**
+	 * Remove a selection composite strategy provider.
+	 *
+	 * @param provider the provider to remove
+	 */
+	void removeReferenceTableColumnStrategyProvider(SelectionCompositeStrategy.Provider provider) {
+		selectionCompositeStrategyBazaar.removeVendor(provider);
+	}
+
+	/**
 	 * Activates me.
 	 *
 	 * @param context my component context
@@ -223,6 +248,7 @@
 			drs.setEObjectSelectionStrategy(createDynamicEObjectSelectionStrategy());
 			drs.setOpenStrategy(createDynamicOpenInNewContextStrategy());
 			drs.setReferenceStrategy(createDynamicReferenceStrategy());
+			drs.setSelectionCompositeStrategyy(createDynamicSelectionCompositeStrategy());
 
 			drs.instantiate((ViewModelContext) emfFormsViewContext);
 
@@ -311,4 +337,24 @@
 		};
 	}
 
+	private SelectionCompositeStrategy createDynamicSelectionCompositeStrategy() {
+		return new SelectionCompositeStrategy() {
+
+			@Override
+			public SelectionComposite<? extends StructuredViewer> getSelectionViewer(EObject owner,
+				EReference reference, Collection<? extends EObject> extent) {
+
+				final BazaarContext bctx = ReferenceStrategyUtil.bazaarContextBuilder(context, owner, reference)
+					.put(EXTENT, extent)
+					.build();
+
+				final SelectionCompositeStrategy delegate = selectionCompositeStrategyBazaar.createProduct(bctx);
+				if (delegate == null) {
+					return null; // Shouldn't happen
+				}
+				return delegate.getSelectionViewer(owner, reference, extent);
+			}
+		};
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/RenderFailureView.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/RenderFailureView.java
new file mode 100644
index 0000000..81241f1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/RenderFailureView.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ui.view.swt;
+
+import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.view.internal.swt.Activator;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * A specialized view presenting a rendering exception.
+ *
+ * @since 1.22
+ */
+public class RenderFailureView implements ECPSWTView {
+
+	private final ViewModelContext context;
+	private final ECPRendererException exception;
+	private final Label label;
+
+	/**
+	 * Initializes me with the {@code exception} to present.
+	 *
+	 * @param parent the parent composite in which to present the {@code exception}
+	 * @param context the view context
+	 * @param exception the rendering exception
+	 */
+	public RenderFailureView(Composite parent, ViewModelContext context, ECPRendererException exception) {
+		super();
+
+		this.context = context;
+		this.exception = exception;
+
+		final EMFFormsLocalizationService l10n = context.getService(EMFFormsLocalizationService.class);
+		final String message = NLS.bind(l10n.getString(Activator.getDefault().getBundle(), "renderFailed"), //$NON-NLS-1$
+			exception.getMessage());
+		label = new Label(parent, SWT.NONE);
+		label.setText(message);
+	}
+
+	@Override
+	public void dispose() {
+		context.dispose();
+		label.dispose();
+	}
+
+	/**
+	 * Obtains the SWT control presenting the exception.
+	 */
+	@Override
+	public Control getSWTControl() {
+		return label;
+	}
+
+	@Override
+	public ViewModelContext getViewModelContext() {
+		return context;
+	}
+
+	/**
+	 * Queries the exception that I present.
+	 *
+	 * @return the rendering exception
+	 */
+	public Throwable getException() {
+		return exception;
+	}
+}
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 56dfee3..ca2b2b2 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, 2019 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 2.0
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategyUtil.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategyUtil.java
index 5348d71..5f1789b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategyUtil.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategyUtil.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.ui.view.swt.reference;
 
@@ -84,9 +85,26 @@
 	 * @return The configured {@link BazaarContext}
 	 */
 	public static BazaarContext createBazaarContext(ComponentContext context, EObject owner, EReference reference) {
+		return bazaarContextBuilder(context, owner, reference).build();
+	}
+
+	/**
+	 * Creates a {@link BazaarContext} builder that seeds the context with the properties of the
+	 * {@link ComponentContext}, the <code>owner</code> as a context value for class {@link EObject},
+	 * and the <code>reference</code> for class {@link EReference}.
+	 *
+	 * @param context The {@link ComponentContext}
+	 * @param owner The {@link EObject} containing a reference
+	 * @param reference The {@link EReference}
+	 * @return The configured {@link BazaarContext}
+	 *
+	 * @since 1.22
+	 */
+	public static BazaarContext.Builder bazaarContextBuilder(ComponentContext context, EObject owner,
+		EReference reference) {
 		return BazaarUtil.createBaseContext(context.getProperties())
 			.put(EObject.class, owner)
-			.put(EReference.class, reference)
-			.build();
+			.put(EReference.class, reference);
 	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/SelectionCompositeStrategy.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/SelectionCompositeStrategy.java
new file mode 100644
index 0000000..9cab41e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/SelectionCompositeStrategy.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ui.view.swt.reference;
+
+import java.util.Collection;
+
+import javax.inject.Named;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
+import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
+import org.eclipse.emfforms.bazaar.BazaarContext;
+import org.eclipse.emfforms.bazaar.Vendor;
+import org.eclipse.jface.viewers.StructuredViewer;
+
+/**
+ * Strategy for provision of the selection composite to show in the object selection dialog.
+ *
+ * @since 1.22
+ */
+public interface SelectionCompositeStrategy {
+
+	/**
+	 * The {@linkplain Named name} of a {@linkplain BazaarContext bazaar context} variable
+	 * providing the extent of objects from which to select, as a {@link Collection}.
+	 */
+	String EXTENT = "extent"; //$NON-NLS-1$
+
+	/**
+	 * The default strategy. Provides a selection table with just the label column.
+	 */
+	SelectionCompositeStrategy DEFAULT = (owner, reference, extent) -> CompositeFactory
+		.getTableSelectionComposite(extent, reference.isMany());
+
+	/**
+	 * Query the viewer to present from which the user will select object(s) to reference.
+	 *
+	 * @param owner an existing object in which a reference feature is to have references added
+	 * @param reference the reference of the {@code owner} to which objects are to be added
+	 * @param extent the collection of objects from which the user may make a selection
+	 *
+	 * @return the selection viewer composite
+	 */
+	SelectionComposite<? extends StructuredViewer> getSelectionViewer(EObject owner, EReference reference,
+		Collection<? extends EObject> extent);
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Specific Bazaar vendor interface for reference selection composite strategies. The
+	 * {@link BazaarContext} includes a value {@link Named named} {@code "extent"}.
+	 *
+	 * @since 1.22
+	 *
+	 * @see SelectionCompositeStrategy#EXTENT
+	 */
+	public interface Provider extends Vendor<SelectionCompositeStrategy> {
+		// Nothing to add to the superinterface
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewImpl.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewImpl.java
index 244acb2..9f16317 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewImpl.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.swt;
 
@@ -34,34 +35,26 @@
 	public ECPSWTViewImpl(Composite composite, ViewModelContext viewContext) {
 		this.composite = composite;
 		this.viewContext = viewContext;
+
+		composite.addDisposeListener(__ -> dispose());
+
+		// I don't own this context so I cannot dispose it, but I need it while I am active
+		viewContext.addContextUser(this);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.ui.view.swt.ECPSWTView#getSWTControl()
-	 */
 	@Override
 	public Control getSWTControl() {
 		return composite;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.ui.view.swt.ECPSWTView#dispose()
-	 */
 	@Override
 	public void dispose() {
-		viewContext.dispose();
+		// I don't own this context, so I cannot dispose it (unless there are no other users)
+		viewContext.removeContextUser(this);
+
 		composite.dispose();
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.ui.view.swt.ECPSWTView#getViewModelContext()
-	 */
 	@Override
 	public ViewModelContext getViewModelContext() {
 		return viewContext;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/PageLayout.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/PageLayout.java
new file mode 100644
index 0000000..6f53db3
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/PageLayout.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.layout;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * <p>
+ * A specialization of the {@link StackLayout} that behaves more like the layout
+ * of the {@code PageBook} control that implements paged views in Eclipse.
+ * Most importantly, it does not constrain all of its "page" controls to have
+ * the size of the largest among them.
+ * </p>
+ * <p>
+ * <strong>Note</strong> that as this class is a kind of {@link StackLayout}, it
+ * exposes a public {@link StackLayout#topControl} field. Clients should not
+ * access or modify this field directly but instead use the provided
+ * {@link #getCurrentPage()} and {@link #showPage(Control)} APIs.
+ * </p>
+ *
+ * @since 1.22
+ */
+public class PageLayout extends StackLayout {
+
+	private final Composite composite;
+	private final Set<Control> pages = new LinkedHashSet<Control>();
+	private final DisposeListener disposeListener = this::childDisposed;
+
+	/**
+	 * Initializes me with the composite for which I provide layout.
+	 *
+	 * @param composite my composite
+	 */
+	public PageLayout(Composite composite) {
+		super();
+
+		this.composite = composite;
+		composite.setLayout(this);
+	}
+
+	/**
+	 * Show the given {@code control} as the current page and re-compute the
+	 * composite's layout.
+	 *
+	 * @param control the control to show (must not be {@code null})
+	 *
+	 * @throws NullPointerException if the {@code control} is {@code null}
+	 * @throws IllegalArgumentException if the {@code control} is not a child of my composite
+	 */
+	public void showPage(Control control) {
+		if (control.getParent() != composite) {
+			throw new IllegalArgumentException("control is not in the composite"); //$NON-NLS-1$
+		}
+
+		if (topControl != control) {
+			final Control[] children = composite.getChildren();
+			for (int i = 0; i < children.length; i++) {
+				children[i].setVisible(children[i] == control);
+			}
+
+			if (pages.add(control)) {
+				control.addDisposeListener(disposeListener);
+			}
+
+			topControl = control;
+			composite.layout();
+		}
+	}
+
+	/**
+	 * Query what is the current page that I am showing.
+	 *
+	 * @return my current page, or {@code null} if none is current
+	 */
+	public Control getCurrentPage() {
+		return topControl;
+	}
+
+	@Override
+	protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
+		Control currentPage = topControl;
+		if (currentPage == null) {
+			// Just take the first control
+			currentPage = firstValidPage();
+		}
+
+		int width = 0;
+		int height = 0;
+
+		if (currentPage != null) {
+			final Point size = currentPage.computeSize(wHint, hHint, flushCache);
+			width = size.x;
+			height = size.y;
+		}
+
+		width = width + 2 * marginWidth;
+		height = height + 2 * marginHeight;
+
+		if (wHint != SWT.DEFAULT) {
+			width = wHint;
+		}
+		if (hHint != SWT.DEFAULT) {
+			height = hHint;
+		}
+
+		return new Point(width, height);
+	}
+
+	private Control firstValidPage() {
+		final Control[] children = composite.getChildren();
+		for (int i = 0; i < children.length; i++) {
+			final Control next = children[i];
+			// We use this when looking for a control that is not the top
+			// control, so filter that
+			if (!next.isDisposed() && next != topControl) {
+				return next;
+			}
+		}
+		return null;
+	}
+
+	private void childDisposed(DisposeEvent event) {
+		if (pages.remove(event.widget) && topControl == event.widget && !composite.isDisposed()) {
+			// Current page was disposed. Oops
+			final Control toShow = firstValidPage();
+			if (toShow != null) {
+				showPage(toShow);
+			}
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/BasicDetailViewCache.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/BasicDetailViewCache.java
new file mode 100644
index 0000000..c252296
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/BasicDetailViewCache.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 527686
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.masterdetail;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Supplier;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener;
+
+/**
+ * A default implementation of the {@link DetailViewCache} that uses the {@link EClass} as the key.
+ *
+ * @since 1.22
+ */
+public class BasicDetailViewCache implements DetailViewCache {
+
+	private final Map<EClass, Record> cache;
+
+	/**
+	 * Creates a cache with maximal 5 entries.
+	 */
+	public BasicDetailViewCache() {
+		this(5);
+	}
+
+	/**
+	 * Creates a cache with a custom number of maximal entries.
+	 *
+	 * @param maxEntries The number of maximal entries to cache
+	 */
+	public BasicDetailViewCache(final int maxEntries) {
+		cache = new LinkedHashMap<EClass, Record>(maxEntries + 1, .75F, true) {
+			private static final long serialVersionUID = 1L;
+
+			// This method is called just after a new entry has been added
+			@Override
+			public boolean removeEldestEntry(Map.Entry<EClass, Record> eldest) {
+				final boolean result = size() > maxEntries;
+				if (result) {
+					eldest.getValue().dispose();
+				}
+				return result;
+			}
+		};
+	}
+
+	@Override
+	public boolean isCached(EObject selection) {
+		return selection != null && cache.containsKey(selection.eClass());
+	}
+
+	@Override
+	public ECPSWTView getCachedView(EObject selection) {
+		return getRecord(selection).map(Supplier::get).orElse(null);
+	}
+
+	private Optional<Record> getRecord(EObject selection) {
+		return Optional.ofNullable(selection).map(EObject::eClass).map(cache::get);
+	}
+
+	@Override
+	public boolean cacheView(ECPSWTView ecpView) {
+		// Don't attempt to cache a view already disposed
+		if (ecpView == null || ecpView.getSWTControl().isDisposed()) {
+			return false;
+		}
+
+		final EClass key = ecpView.getViewModelContext().getDomainModel().eClass();
+		final Record existing = cache.get(key);
+
+		if (existing == null) {
+			// Easy. Add it
+			cache.put(key, new Record(key, ecpView));
+		} else if (existing.get() != ecpView) {
+			// Not the same view. Dispose the old
+			existing.dispose();
+			cache.put(key, new Record(key, ecpView));
+		} // Otherwise we already have cached exactly this view
+
+		return true;
+	}
+
+	@Override
+	public void clear() {
+		final List<Record> records = new ArrayList<>(cache.values());
+		cache.clear();
+		records.forEach(Record::dispose);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Self-disposing record of the caching of a rendered view for some {@link EClass}.
+	 * Disposes itself when the view context is disposed.
+	 */
+	private final class Record implements ViewModelContextDisposeListener, Supplier<ECPSWTView> {
+
+		private final EClass eClass;
+		private final ECPSWTView ecpView;
+
+		Record(EClass eClass, ECPSWTView ecpView) {
+			super();
+
+			this.eClass = eClass;
+			this.ecpView = ecpView;
+
+			ecpView.getViewModelContext().registerDisposeListener(this);
+		}
+
+		void dispose() {
+			ecpView.dispose();
+		}
+
+		@Override
+		public ECPSWTView get() {
+			return ecpView;
+		}
+
+		@Override
+		public void contextDisposed(ViewModelContext viewModelContext) {
+			dispose();
+			cache.remove(eClass, this);
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailRenderingFunction.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailRenderingFunction.java
new file mode 100644
index 0000000..cc4ccc7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailRenderingFunction.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.masterdetail;
+
+import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Rendering function for detail views.
+ *
+ * @since 1.22
+ */
+@FunctionalInterface
+public interface DetailRenderingFunction {
+
+	/**
+	 * Creates a view with the attributes of the domain object. The layout of the view is specified by the view
+	 * model set in the view model context.
+	 *
+	 * @param parent the parent SWT composite to render the view on
+	 * @param viewModelContext the {@link ViewModelContext} to use
+	 * @return an ECPSWTView providing an interface to the rendered view
+	 * @throws ECPRendererException if there is an exception during rendering
+	 */
+	ECPSWTView render(Composite parent, ViewModelContext viewModelContext) throws ECPRendererException;
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailViewCache.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailViewCache.java
new file mode 100644
index 0000000..a59aec8
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailViewCache.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 527686
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.masterdetail;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+
+/**
+ * A cache for the <em>Master-Detail</em> renderers that caches rendered {@link ECPSWTView}s
+ * and reuses them when switching between elements in the master viewer. Whether the cache
+ * is size-limited is implementation-dependent.
+ *
+ * @since 1.22
+ */
+public interface DetailViewCache {
+
+	/**
+	 * Name of an {@link ViewModelContext#putContextValue(String, Object) context value}
+	 * specifying the view cache to instantiate in the editor, for master-detail
+	 * renderers that support caching. May be a positive {@link Integer} value to specify
+	 * the cache size, or {@code Boolean} to enable (or not) a cache of the default size.
+	 */
+	String DETAIL_VIEW_CACHE_SIZE = "detailViewCacheSize"; //$NON-NLS-1$
+
+	/**
+	 * A cache implementation that does not cache anything. It is always empty.
+	 */
+	DetailViewCache EMPTY = new EmptyDetailViewCache();
+
+	/**
+	 * Checks whether there is already a cached view available.
+	 *
+	 * @param selection The new master object selection
+	 * @return {@code true} if there is a cached view for the provided {@code selection}; {@code false} otherwise
+	 */
+	boolean isCached(EObject selection);
+
+	/**
+	 * Returns the previously cached view for the provided selection.
+	 *
+	 * @param selection The new master object selection
+	 * @return the cached view, or {@code null} if none is cached
+	 *
+	 * @see #isCached(EObject)
+	 */
+	ECPSWTView getCachedView(EObject selection);
+
+	/**
+	 * <p>
+	 * Caches the provided {@link ECPSWTView} to allow it to be reused later, if there is
+	 * room for it the cache.
+	 * </p>
+	 * <p>
+	 * <strong>Note</strong> that a view is cached when it is no longer required, usually
+	 * because another detail view is taking its place in the editor. Consequently, if the cache
+	 * is size-limited and cannot actually cache the view, it must
+	 * {@linkplain ECPSWTView#dispose() dispose that view}.
+	 * </p>
+	 *
+	 * @param ecpView the {@link ECPSWTView} to cache
+	 *
+	 * @return {@code true} if the view was added to the cache; {@code false} otherwise (in which
+	 *         case it would be disposed)
+	 */
+	boolean cacheView(ECPSWTView ecpView);
+
+	/**
+	 * Dispose all cached views, emptying the cache. The cache must still be in
+	 * a state to be used (this is not a "dispose" operation).
+	 */
+	void clear();
+
+	/**
+	 * Create a standard cache as indicated by the {@link #DETAIL_VIEW_CACHE_SIZE} value
+	 * in the given {@code context}.
+	 *
+	 * @param context the master view model context
+	 * @return the detail view cache (never {@code null})
+	 */
+	static DetailViewCache createCache(ViewModelContext context) {
+		DetailViewCache result;
+
+		final Object value = context.getContextValue(DETAIL_VIEW_CACHE_SIZE);
+
+		if (value instanceof Boolean) {
+			result = (Boolean) value ? new BasicDetailViewCache() : EMPTY;
+		} else if (value instanceof Integer) {
+			final int intValue = (Integer) value;
+			result = intValue > 0 ? new BasicDetailViewCache(intValue) : EMPTY;
+		} else {
+			result = EMPTY;
+		}
+
+		return result;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailViewManager.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailViewManager.java
new file mode 100644
index 0000000..3a6e177
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/DetailViewManager.java
@@ -0,0 +1,693 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.masterdetail;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.WeakHashMap;
+import java.util.function.BiFunction;
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
+import org.eclipse.emf.ecp.ui.view.swt.RenderFailureView;
+import org.eclipse.emf.ecp.view.internal.swt.Activator;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabelFactory;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage;
+import org.eclipse.emf.ecp.view.spi.model.LocalizationAdapter;
+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.model.VViewModelLoadingProperties;
+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.provider.ViewProviderHelper;
+import org.eclipse.emf.ecp.view.spi.swt.layout.PageLayout;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationFactory;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * A manager for the SWT renderings of detail views, with caching.
+ *
+ * @since 1.22
+ */
+public class DetailViewManager implements DetailViewCache {
+
+	/**
+	 * Name of a boolean-valued {@linkplain VViewModelProperties view model property}
+	 * indicating that the view model is being rendered as a detail in a master-detail
+	 * presentation. It is useful to distinguish this case in enablement/visibility
+	 * rules, templates, etc. from the general case of a view rendering.
+	 */
+	public static final String DETAIL_PROPERTY = "detail"; //$NON-NLS-1$
+
+	private DetailViewCache cache = DetailViewCache.EMPTY;
+
+	private final Set<ECPSWTView> views = new HashSet<>();
+	private final Composite detailStack;
+	private final PageLayout detailLayout;
+
+	/** The currently presented detail view. */
+	private ECPSWTView currentDetailView;
+
+	/** Remember intrinsic read-only state of detail views (as specified in the model). */
+	private final Map<VElement, Boolean> originalDetailViewReadOnly = new WeakHashMap<>();
+
+	/**
+	 * Encapsulation of the mechanism of the last rendering performed.
+	 * Inputs are the detail context and whether the rendering should be read-only.
+	 */
+	private BiFunction<ViewModelContext, Boolean, ECPSWTView> currentRenderer;
+
+	/** View-model properties for the detail view. */
+	private final VViewModelLoadingProperties detailProperties = VViewFactory.eINSTANCE
+		.createViewModelLoadingProperties();
+
+	private final Function<? super EObject, ? extends VView> detailViewFunction;
+
+	/** View to present when there is no detail view provided by the framework. */
+	private VView noDetails;
+	private ECPSWTView renderedNoDetails;
+
+	private String noDetailMessage;
+
+	private boolean disposed;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param parent the composite in which to create the detail container
+	 */
+	public DetailViewManager(Composite parent) {
+		this(parent, null);
+	}
+
+	/**
+	 * Initializes me with explicit detail views. When the detail function can provide a
+	 * detail view, then the framework's pluggable view providers are not consulted for it.
+	 *
+	 * @param parent the composite in which to create the detail container
+	 * @param detailView the detail-view provider function
+	 */
+	public DetailViewManager(Composite parent, Function<? super EObject, ? extends VView> detailView) {
+		super();
+
+		detailStack = new Composite(parent, SWT.NONE);
+		detailLayout = new PageLayout(detailStack);
+
+		detailProperties.addNonInheritableProperty(DETAIL_PROPERTY, true);
+		detailViewFunction = detailView != null ? detailView : __ -> null;
+
+		detailStack.addDisposeListener(__ -> dispose());
+	}
+
+	/**
+	 * Dispose of me and my UI resources.
+	 */
+	public void dispose() {
+		disposed = true;
+
+		clear();
+
+		if (renderedNoDetails != null) {
+			renderedNoDetails.dispose();
+		}
+
+		detailStack.dispose();
+	}
+
+	/**
+	 * Queries whether I have been disposed.
+	 *
+	 * @return whether I am disposed
+	 */
+	public boolean isDisposed() {
+		return disposed;
+	}
+
+	private void disposeViews() {
+		// Copy 'views' set because disposal of the contexts will try to remove from it
+		final List<ECPSWTView> toDispose = new ArrayList<>(views);
+		views.clear();
+		toDispose.forEach(ECPSWTView::dispose);
+	}
+
+	/**
+	 * Obtain the control that contains the rendered details. This is useful, for example,
+	 * to set layout parameters on it in the context of its parent composite.
+	 *
+	 * @return the container of the rendered details
+	 */
+	public Control getDetailContainer() {
+		return detailStack;
+	}
+
+	/**
+	 * Set the detail-view cache to use. If some other cache was being used, any rendered
+	 * controls that it maintained {@linkplain Widget#dispose() will be disposed}.
+	 *
+	 * @param cache the {@link DetailViewCache} to use, or {@code null} to use no cache
+	 */
+	public void setCache(DetailViewCache cache) {
+		if (cache != this.cache && this.cache != null) {
+			disposeViews();
+		}
+
+		this.cache = cache != null ? cache : DetailViewCache.EMPTY;
+	}
+
+	/**
+	 * Present the {@linkplain #isCached(EObject) previously cached} view for an object.
+	 *
+	 * @param eObject the object to present
+	 *
+	 * @return the re-rendered view
+	 *
+	 * @throws IllegalStateException if there is no view cached for the object
+	 * @see #isCached(EObject)
+	 */
+	public ECPSWTView activate(EObject eObject) {
+		cacheCurrentDetail(false);
+
+		final ECPSWTView cached = cache.getCachedView(eObject);
+
+		if (cached == null) {
+			throw new IllegalStateException("not cached"); //$NON-NLS-1$
+		}
+
+		final ViewModelContext context = cached.getViewModelContext();
+		if (context.getDomainModel() != eObject) {
+			context.changeDomainModel(eObject);
+		}
+
+		// the "renderer" function in this case shouldn't be invoked
+		final ECPSWTView result = doRender(context, (p, c) -> {
+			throw new IllegalStateException("not cached"); //$NON-NLS-1$
+		}, context.getViewModel().isReadonly());
+
+		return result;
+	}
+
+	/**
+	 * Render the detail view for a given {@code context} in the specified {@code parent} composite.
+	 * If a {@linkplain #isCached(EObject) cached rendering} is available for the domain model,
+	 * then it is re-used and the {@code context} is {@linkplain ViewModelContext#dispose() disposed}.
+	 * Otherwise, the supplied rendering function is used to render the detail view.
+	 *
+	 * @param context the context to present in the detail view
+	 * @param renderer if needed to render a new detail view control
+	 * @return the rendered view
+	 */
+	public ECPSWTView render(ViewModelContext context, DetailRenderingFunction renderer) {
+		currentRenderer = (detail, readOnly) -> doRender(detail, renderer, readOnly);
+		return currentRenderer.apply(context, context.getViewModel().isReadonly());
+	}
+
+	private ECPSWTView doRender(ViewModelContext context, DetailRenderingFunction renderer, boolean readOnly) {
+		cacheCurrentDetail(false);
+
+		final EObject domainModel = context.getDomainModel();
+		ECPSWTView result = isCached(domainModel) ? getCachedView(domainModel) : null;
+
+		if (result == null) {
+			try {
+				result = renderer.render(detailStack, context);
+				initializeOriginalReadOnly(result.getViewModelContext().getViewModel());
+			} catch (final ECPRendererException e) {
+				final ReportService reportService = context.getService(ReportService.class);
+				reportService.report(new RenderingFailedReport(e));
+
+				result = new RenderFailureView(detailStack, context, e);
+			}
+
+			// Track it for eventual disposal
+			context.registerDisposeListener(new ContextDisposeListener(result));
+		} else {
+			if (result.getViewModelContext().getDomainModel() != domainModel) {
+				result.getViewModelContext().changeDomainModel(domainModel);
+			}
+
+			if (context != result.getViewModelContext()) {
+				// Don't need this context
+				context.dispose();
+			}
+		}
+
+		setCurrentDetail(result);
+		showDetail(result.getSWTControl());
+
+		// It's currently showing, so don't track it for disposal on flushing the cache
+		views.remove(result);
+
+		return result;
+	}
+
+	private void setCurrentDetail(ECPSWTView ecpView) {
+		if (currentDetailView == ecpView) {
+			return; // Nothing to change
+		}
+
+		currentDetailView = ecpView;
+	}
+
+	private void showDetail(Control control) {
+		detailLayout.showPage(control);
+
+		// Recompute scroll layout, if applicable
+		for (Composite composite = detailStack; composite != null; composite = composite.getParent()) {
+			if (composite.getParent() instanceof ScrolledComposite) {
+				final ScrolledComposite scrollPane = (ScrolledComposite) composite.getParent();
+				if (composite == scrollPane.getContent()) {
+					scrollPane.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+				}
+				break;
+			}
+		}
+	}
+
+	/**
+	 * Render the detail view for a given {@code object} in the specified master context.
+	 *
+	 * @param masterContext the master context in which the {@code object} is selected
+	 * @param masterView the master view in which context to render the detail view
+	 * @param object the selected object for which to present the detail
+	 * @return the rendered view
+	 */
+	public ECPSWTView render(ViewModelContext masterContext, VElement masterView, EObject object) {
+		cacheCurrentDetail(false);
+
+		ECPSWTView result;
+		final VView detail = getDetailView(object);
+
+		// Set the detail view to read only if the master view is read only or disabled
+		final boolean detailReadOnly = detail.isEffectivelyReadonly() || !detail.isEffectivelyEnabled();
+		detail.setReadonly(detailReadOnly || !masterView.isEffectivelyEnabled() || masterView.isEffectivelyReadonly());
+
+		if (isCached(object)) {
+			result = activate(object);
+			result.getViewModelContext().changeDomainModel(object);
+		} else {
+			final ViewModelContext childContext = masterContext.getChildContext(object, masterView, detail);
+			result = render(childContext, ECPSWTViewRenderer.INSTANCE::render);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Obtain the currently presented detail view.
+	 *
+	 * @return the current rendered detail view, or {@code null} if none
+	 */
+	public final ECPSWTView getCurrentDetail() {
+		return currentDetailView;
+	}
+
+	/**
+	 * Cache the currently presented detail view, if any, and remove it from the UI.
+	 */
+	public void cacheCurrentDetail() {
+		cacheCurrentDetail(true);
+	}
+
+	private void cacheCurrentDetail(boolean showEmpty) {
+		if (currentDetailView != null) {
+			final ECPSWTView ecpView = currentDetailView;
+			setCurrentDetail(null);
+
+			if (isDisposed()) {
+				// Just dispose the detail, then, because we can't cache it
+				ecpView.dispose();
+				// but we need to show something ...
+				showEmpty = true;
+			} else if (!cacheView(ecpView)) {
+				// The current detail view was disposed, so show this instead
+				showEmpty = true;
+			}
+
+		}
+
+		if (showEmpty && !isDisposed()) {
+			showDetail(getNoDetailsControl().getSWTControl());
+		}
+	}
+
+	/**
+	 * Set focus to the currently presented detail view.
+	 */
+	public void setFocus() {
+		if (currentDetailView != null && !currentDetailView.getSWTControl().isDisposed()) {
+			currentDetailView.getSWTControl().setFocus();
+		}
+	}
+
+	/**
+	 * Obtain the view-model properties used for loading the detail view model.
+	 * Clients may update these properties but must not change the {@link #DETAIL_PROPERTY detail property}.
+	 *
+	 * @return the view-model properties for the detail view
+	 */
+	public VViewModelProperties getDetailProperties() {
+		return detailProperties;
+	}
+
+	/**
+	 * Obtain the detail view in the context of the given master view-model context for a selected
+	 * {@code object} in the master view.
+	 *
+	 * @param masterContext the master view-model context
+	 * @param object the selection in the master view for which to get a detail view
+	 * @return the detail view
+	 */
+	public VView getDetailView(ViewModelContext masterContext, EObject object) {
+		return getDetailView(masterContext, object, null);
+	}
+
+	/**
+	 * Obtain the detail view in the context of the given master view-model context for a selected
+	 * {@code object} in the master view.
+	 *
+	 * @param masterContext the master view-model context
+	 * @param object the selection in the master view for which to get a detail view
+	 * @param propertiesManipulator an optional hook with which to inject properties to assist/filter the detail view
+	 *            model resolution
+	 *
+	 * @return the detail view
+	 */
+	public VView getDetailView(ViewModelContext masterContext, EObject object,
+		Consumer<? super VViewModelProperties> propertiesManipulator) {
+
+		final VElement viewModel = masterContext.getViewModel();
+		final VViewModelProperties properties = ViewModelPropertiesHelper
+			.getInhertitedPropertiesOrEmpty(viewModel);
+
+		// Inject client properties
+		if (propertiesManipulator != null) {
+			propertiesManipulator.accept(properties);
+		}
+
+		// Inject our properties
+		detailProperties.getNonInheritableProperties().map().forEach(properties::addNonInheritableProperty);
+		detailProperties.getInheritableProperties().map().forEach(properties::addInheritableProperty);
+
+		return ViewProviderHelper.getView(object, properties);
+	}
+
+	/**
+	 * Obtain the detail view for an {@code object} selected in the master view. This method
+	 * is useful for master-detail presentations in which the master is not managed by a
+	 * Form in a {@link ViewModelContext} but explicitly by some custom UI control.
+	 *
+	 * @param object the master view selection
+	 * @return the detail view for the {@code object}
+	 */
+	public VView getDetailView(EObject object) {
+		return getDetailView(object, getDetailProperties());
+	}
+
+	/**
+	 * Set the current detail view read-only or not, unless it is intrinsically read-only,
+	 * in which case it will remain so (this method will have no effect).
+	 *
+	 * @param readOnly {@code true} to set the detail view read-only;
+	 *            {@code false} to let its intrinsic read-only state prevail
+	 */
+	public void setDetailReadOnly(boolean readOnly) {
+		if (currentDetailView != null && !currentDetailView.getSWTControl().isDisposed()) {
+			final ViewModelContext detailContext = currentDetailView.getViewModelContext();
+			final VElement currentDetailVView = detailContext.getViewModel();
+
+			if (readOnly != currentDetailVView.isReadonly()) {
+				currentDetailVView.setReadonly(readOnly || wasOriginallyReadOnly(currentDetailVView));
+
+				// Need to rebuild the details because they can be rendered quite
+				// differently in read-only mode as in writable mode. The
+				// renderer operation will compute the new read-only state
+				if (currentRenderer != null) {
+					// Don't let this detail context be disposed by zero reference count
+					detailContext.addContextUser(currentRenderer);
+					try {
+						clear();
+						currentRenderer.apply(detailContext, readOnly);
+					} finally {
+						detailContext.removeContextUser(currentRenderer);
+					}
+				}
+			}
+
+		}
+	}
+
+	private boolean wasOriginallyReadOnly(VElement detailView) {
+		return originalDetailViewReadOnly.getOrDefault(detailView, false);
+	}
+
+	/**
+	 * Get the view provided by the framework for details of the given {@code object}.
+	 *
+	 * @param object the object for which to get the detail view
+	 * @param properties the properties to use for loading the view
+	 * @return the detail view (never {@code null}, even if the framework provides nothing)
+	 */
+	protected VView getDetailView(EObject object, VViewModelProperties properties) {
+		VView result = detailViewFunction.apply(object);
+		if (result != null) {
+			// Have an explicit view
+			result.setLoadingProperties(EcoreUtil.copy(properties));
+		} else {
+			// Go to the framework to get a provided view
+			result = ViewProviderHelper.getView(object, properties);
+
+			if (result == null) {
+				// Nothing provided. Make that clear to the user
+				result = getNoDetailView();
+				result.setLoadingProperties(EcoreUtil.copy(properties));
+			}
+		}
+
+		initializeOriginalReadOnly(result);
+
+		return result;
+	}
+
+	/**
+	 * Store the original intrinsic read-only state if this is the first we see of
+	 * the given detail view.
+	 *
+	 * @param detailView a detail view that was or will be rendered
+	 */
+	private void initializeOriginalReadOnly(VElement detailView) {
+		final boolean readOnly = detailView.isEffectivelyReadonly() || !detailView.isEffectivelyEnabled();
+		originalDetailViewReadOnly.putIfAbsent(detailView, readOnly);
+	}
+
+	/**
+	 * Obtain a view to use as placeholder when the framework provides no view for the
+	 * detail of the selection or when there is no selection.
+	 *
+	 * @return the no-details placeholder view
+	 */
+	protected VView getNoDetailView() {
+		if (noDetails == null) {
+			noDetails = VViewFactory.eINSTANCE.createView();
+			noDetails.setUuid(Integer.toHexString(noDetails.hashCode()));
+			final VLabel label = VLabelFactory.eINSTANCE.createLabel();
+			label.setUuid(Integer.toHexString(label.hashCode()));
+			label.setName("%noDetails"); //$NON-NLS-1$
+
+			// Annotate the label to let it match our styling template
+			final VAnnotation annotation = VAnnotationFactory.eINSTANCE.createAnnotation();
+			annotation.setKey("detail"); //$NON-NLS-1$
+			annotation.setValue("noDetails"); //$NON-NLS-1$
+			label.getAttachments().add(annotation);
+
+			noDetails.getChildren().add(label);
+		}
+
+		final VView result = EcoreUtil.copy(noDetails);
+		if (noDetailMessage != null) {
+			// Replace the label name
+			final VLabel label = (VLabel) EcoreUtil.getObjectByType(result.getChildren(),
+				VLabelPackage.Literals.LABEL);
+			label.setName(noDetailMessage);
+		}
+
+		result.eAdapters().add(new LocalizationAdapter() {
+
+			@Override
+			public String localize(String key) {
+				return LocalizationServiceHelper.getString(Activator.getDefault().getBundle(),
+					key);
+			}
+		});
+
+		return result;
+	}
+
+	/**
+	 * Obtain the renderer control showing a hint that there is no selection or
+	 * no details for the current selection.
+	 *
+	 * @return the no-details control
+	 */
+	protected ECPSWTView getNoDetailsControl() {
+		if (renderedNoDetails == null) {
+			final VView view = getNoDetailView();
+
+			// The view is just a static label, so it doesn't matter that it renders itself
+			final ViewModelContext context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, view);
+
+			try {
+				renderedNoDetails = ECPSWTViewRenderer.INSTANCE.render(detailStack, context);
+			} catch (final ECPRendererException e) {
+				renderedNoDetails = new RenderFailureView(detailStack, context, e);
+			}
+		}
+
+		return renderedNoDetails;
+	}
+
+	/**
+	 * Apply a reasonable default layout for the parent {@code composite} of a detail container
+	 * where the only thing contained in that parent is the detail container.
+	 *
+	 * @param composite the detail parent composite
+	 * @return the {@code composite}, for convenience of call chaining
+	 */
+	public Composite layoutDetailParent(Composite composite) {
+		final FillLayout layout = new FillLayout(SWT.VERTICAL);
+
+		// Use the same margins as are defauls for the grid layout
+		final GridLayout gridLayout = new GridLayout();
+		layout.marginHeight = gridLayout.marginHeight;
+		layout.marginWidth = gridLayout.marginWidth;
+
+		composite.setLayout(layout);
+		return composite;
+	}
+
+	/**
+	 * Set a message to display to the user when there is no detail to show, either
+	 * because there is no selection in the master or because it has no details.
+	 *
+	 * @param noDetailMessage the "no details" message to set, or {@code null}
+	 *            for the default localized string
+	 *            ("No selection or no details available for selection.")
+	 */
+	public void setNoDetailMessage(String noDetailMessage) {
+		this.noDetailMessage = noDetailMessage;
+
+		// Have we already renderered the "no details" view? If so, poke it
+		if (renderedNoDetails != null) {
+			// Rebuild it
+			final boolean wasCurrent = detailLayout.getCurrentPage() == renderedNoDetails.getSWTControl();
+			renderedNoDetails.dispose();
+			renderedNoDetails = null;
+
+			if (wasCurrent) {
+				showDetail(getNoDetailsControl().getSWTControl());
+			}
+		}
+	}
+
+	//
+	// DetailViewCache protocol
+	//
+
+	@Override
+	public boolean isCached(EObject selection) {
+		return cache.isCached(selection);
+	}
+
+	@Override
+	public ECPSWTView getCachedView(EObject selection) {
+		return cache.getCachedView(selection);
+	}
+
+	@Override
+	public boolean cacheView(ECPSWTView ecpView) {
+		final Control control = ecpView.getSWTControl();
+
+		final boolean result = cache.cacheView(ecpView);
+
+		// Track it if it was successfully cached
+		if (result && !control.isDisposed()) {
+			views.add(ecpView);
+		}
+
+		return result;
+	}
+
+	@Override
+	public void clear() {
+		cacheCurrentDetail();
+		disposeViews();
+		cache.clear();
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Listener for disposal of the current view context.
+	 */
+	private final class ContextDisposeListener implements ViewModelContextDisposeListener {
+
+		private final ECPSWTView ecpView;
+
+		ContextDisposeListener(ECPSWTView ecpView) {
+			super();
+
+			this.ecpView = ecpView;
+		}
+
+		@Override
+		public void contextDisposed(ViewModelContext viewModelContext) {
+			ecpView.dispose();
+
+			if (ecpView == currentDetailView) {
+				// The current context is disposed, so this will result in
+				// its rendering being disposed and the no-details control
+				// being shown in its place
+				cacheCurrentDetail();
+			} else {
+				views.remove(ecpView);
+			}
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/EmptyDetailViewCache.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/EmptyDetailViewCache.java
new file mode 100644
index 0000000..7aef819
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/masterdetail/EmptyDetailViewCache.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.masterdetail;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+
+/**
+ * The {@linkplain DetailViewCache#EMPTY empty detail view cache}.
+ */
+class EmptyDetailViewCache implements DetailViewCache {
+
+	/**
+	 * Initializes me.
+	 */
+	EmptyDetailViewCache() {
+		super();
+	}
+
+	@Override
+	public boolean isCached(EObject selection) {
+		return false;
+	}
+
+	@Override
+	public ECPSWTView getCachedView(EObject selection) {
+		return null;
+	}
+
+	@Override
+	public boolean cacheView(ECPSWTView ecpView) {
+		if (ecpView != null) {
+			// Dispose the view because we cannot cache it, so it would never be reused
+			ecpView.dispose();
+		}
+		return false;
+	}
+
+	@Override
+	public void clear() {
+		// I have nothing to clear
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/templates/details.template b/bundles/org.eclipse.emf.ecp.ui.view.swt/templates/details.template
new file mode 100644
index 0000000..10b299f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/templates/details.template
@@ -0,0 +1,13 @@
+<?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:org.eclipse.emf.ecp.view.template.model="http://org/eclipse/emf/ecp/view/template/model" xmlns:org.eclipse.emf.ecp.view.template.selector.annotation.model="http://www.eclipse.org/emf/ecp/view/template/selector/annotation/model" xmlns:org.eclipse.emf.ecp.view.template.selector.bool.model="http://www.eclipse.org/emf/ecp/view/template/selector/bool/model" xmlns:org.eclipse.emf.ecp.view.template.selector.viewmodelelement.model="http://www.eclipse.org/emf/ecp/view/template/selector/viewmodelelement/model" xmlns:org.eclipse.emf.ecp.view.template.style.fontProperties.model="http://www.eclipse.org/emf/ecp/view/template/style/fontProperties/model" xmlns:org.eclipse.emf.ecp.view.template.style.wrap.model="http://www.eclipse.org/emf/ecp/view/template/style/wrap/model">
+  <styles>
+    <selector xsi:type="org.eclipse.emf.ecp.view.template.selector.bool.model:AndSelector">
+      <selectors xsi:type="org.eclipse.emf.ecp.view.template.selector.viewmodelelement.model:ViewModelElementSelector">
+        <classType href="http://org/eclipse/emf/ecp/view/label/model#//Label"/>
+      </selectors>
+      <selectors xsi:type="org.eclipse.emf.ecp.view.template.selector.annotation.model:AnnotationSelector" key="detail" value="noDetails"/>
+    </selector>
+    <properties xsi:type="org.eclipse.emf.ecp.view.template.style.fontProperties.model:FontPropertiesStyleProperty" bold="true" colorHEX="b3b3b3" height="14"/>
+    <properties xsi:type="org.eclipse.emf.ecp.view.template.style.wrap.model:LabelWrapStyleProperty" wrapLabel="true"/>
+  </styles>
+</org.eclipse.emf.ecp.view.template.model:ViewTemplate>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/.project b/bundles/org.eclipse.emf.ecp.ui.view/.project
index 2625985..d08f2ab 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/.project
+++ b/bundles/org.eclipse.emf.ecp.ui.view/.project
@@ -46,6 +46,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>

 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>

 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>

-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>

 	</natures>

 </projectDescription>

diff --git a/bundles/org.eclipse.emf.ecp.ui.view/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui.view/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.view/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5db521e..eb4f1b0 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,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MPI UI View
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.view.internal.provider;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.context.test",
- org.eclipse.emf.ecp.view.internal.ui;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
- org.eclipse.emf.ecp.view.spi.provider;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.provider.reporting;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.renderer;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.ui.view;version="1.22.0",
+ org.eclipse.emf.ecp.view.internal.provider;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.context.test",
+ org.eclipse.emf.ecp.view.internal.ui;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
+ org.eclipse.emf.ecp.view.spi.provider;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.provider.reporting;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.renderer;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)"
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/OSGI-INF/EMFFormsViewService.xml b/bundles/org.eclipse.emf.ecp.ui.view/OSGI-INF/EMFFormsViewService.xml
index 1d5721c..4d3697d 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/OSGI-INF/EMFFormsViewService.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view/OSGI-INF/EMFFormsViewService.xml
@@ -2,6 +2,7 @@
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" name="EMFFormsViewService">
    <service>
       <provide interface="org.eclipse.emf.ecp.view.spi.provider.EMFFormsViewService"/>
+      <provide interface="org.eclipse.emf.ecp.view.spi.provider.EMFFormsFilteredViewService"/>
    </service>
    <reference bind="addProvider" cardinality="0..n" interface="org.eclipse.emf.ecp.view.spi.provider.IViewProvider" name="Provider" policy="dynamic" unbind="removeProvider"/>
    <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static"/>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view/pom.xml
index 1cc441d..97cd661 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/FilteredViewProviderAdapter.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/FilteredViewProviderAdapter.java
new file mode 100644
index 0000000..285a648
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/FilteredViewProviderAdapter.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.provider;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+
+import org.eclipse.emf.ecore.EObject;
+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.provider.IFilteredViewProvider;
+import org.eclipse.emf.ecp.view.spi.provider.IViewProvider;
+
+/**
+ * Filtering view provider adapter. If any filter keys are required, then
+ * it provides nothing. Otherwise, it delegates view provision.
+ */
+final class FilteredViewProviderAdapter implements IFilteredViewProvider {
+
+	private static final Function<IViewProvider, IFilteredViewProvider> FACTORY = FilteredViewProviderAdapter::new;
+
+	private static final Map<IViewProvider, IFilteredViewProvider> INSTANCES = new ConcurrentHashMap<>();
+
+	private final IViewProvider delegate;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param delegate the view provider to which I delegate
+	 */
+	private FilteredViewProviderAdapter(IViewProvider delegate) {
+		super();
+
+		this.delegate = delegate;
+	}
+
+	@Override
+	public double canProvideViewModel(EObject object, VViewModelProperties properties,
+		Collection<String> requiredKeys) {
+
+		return requiredKeys == null || requiredKeys.isEmpty()
+			? delegate.canProvideViewModel(object, properties)
+			: NOT_APPLICABLE;
+	}
+
+	@Override
+	public VView provideViewModel(EObject object, VViewModelProperties properties, Collection<String> requiredKeys) {
+		return requiredKeys == null || requiredKeys.isEmpty()
+			? delegate.provideViewModel(object, properties)
+			: null;
+	}
+
+	/**
+	 * Obtain the canonical adapter for a view {@code provider}.
+	 *
+	 * @param provider a legacy view provider
+	 * @return the filtering adapter
+	 */
+	static IFilteredViewProvider adapt(IViewProvider provider) {
+		if (provider instanceof IFilteredViewProvider) {
+			return (IFilteredViewProvider) provider;
+		}
+		return INSTANCES.computeIfAbsent(provider, FACTORY);
+	}
+
+	/**
+	 * Forgets an {@code adapter} that is no longer needed.
+	 *
+	 * @param adapter an adapter to dispose
+	 */
+	static void dispose(IFilteredViewProvider adapter) {
+		if (adapter instanceof FilteredViewProviderAdapter) {
+			INSTANCES.remove(((FilteredViewProviderAdapter) adapter).delegate);
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/ViewProviderImpl.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/ViewProviderImpl.java
index 5c4b220..b1a843e 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/ViewProviderImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/ViewProviderImpl.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 2.0
@@ -11,11 +11,13 @@
  * Contributors:
  * Eugen Neufeld - initial API and implementation
  * Edgar Mueller - refactorings
+ * Christian W. Damus - bug 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.provider;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
 
@@ -25,7 +27,9 @@
 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.EMFFormsFilteredViewService;
 import org.eclipse.emf.ecp.view.spi.provider.EMFFormsViewService;
+import org.eclipse.emf.ecp.view.spi.provider.IFilteredViewProvider;
 import org.eclipse.emf.ecp.view.spi.provider.IViewProvider;
 import org.eclipse.emf.ecp.view.spi.provider.reporting.NoViewProviderFoundReport;
 import org.eclipse.emf.ecp.view.spi.provider.reporting.ViewModelIsNullReport;
@@ -45,13 +49,13 @@
  *
  * @author Eugen Neufeld
  */
-@Component(name = "EMFFormsViewService")
-public class ViewProviderImpl implements EMFFormsViewService {
+@Component(name = "EMFFormsViewService", service = { EMFFormsViewService.class, EMFFormsFilteredViewService.class })
+public class ViewProviderImpl implements EMFFormsFilteredViewService {
 
 	private static final String CLASS_CANNOT_BE_RESOLVED = "%1$s cannot be loaded because bundle %2$s cannot be resolved."; //$NON-NLS-1$
 	private static final String CLASS = "class"; //$NON-NLS-1$
 	private static final String EXTENSION_POINT_ID = "org.eclipse.emf.ecp.ui.view.viewModelProviders"; //$NON-NLS-1$
-	private final Set<IViewProvider> viewProviders = new CopyOnWriteArraySet<IViewProvider>();
+	private final Set<IFilteredViewProvider> viewProviders = new CopyOnWriteArraySet<IFilteredViewProvider>();
 	private ReportService reportService;
 
 	/**
@@ -75,7 +79,7 @@
 				final Constructor<? extends IViewProvider> controlConstructor = resolvedClass
 					.getConstructor();
 				final IViewProvider viewProvider = controlConstructor.newInstance();
-				viewProviders.add(viewProvider);
+				viewProviders.add(FilteredViewProviderAdapter.adapt(viewProvider));
 			} catch (final ClassNotFoundException ex) {
 				report(new ViewProviderInitFailedReport(ex));
 			} catch (final NoSuchMethodException ex) {
@@ -110,28 +114,23 @@
 
 	}
 
-	/**
-	 * This allows to retrieve a {@link VView} based on an {@link EObject}. This method reads all {@link IViewProvider
-	 * IViewProviders} and searches for the best fitting. If none can be found, then null is returned.
-	 *
-	 * @param eObject the {@link EObject} to find a {@link VView} for
-	 * @param properties the {@link VViewModelProperties properties}
-	 * @return a view model for the given {@link EObject} or null if no suited provider could be found
-	 */
 	@Override
-	public VView getView(EObject eObject, VViewModelProperties properties) {
+	public VView getView(EObject object, VViewModelProperties properties, Collection<String> requiredKeys) {
+		VView result = null;
+
+		if (viewProviders.isEmpty()) {
+			report(new NoViewProviderFoundReport());
+			return result;
+		}
+
 		double highestPrio = IViewProvider.NOT_APPLICABLE;
-		IViewProvider selectedProvider = null;
+		IFilteredViewProvider selectedProvider = null;
 		if (properties == null) {
 			properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
 		}
 
-		if (viewProviders.isEmpty()) {
-			report(new NoViewProviderFoundReport());
-		}
-
-		for (final IViewProvider viewProvider : viewProviders) {
-			final double prio = viewProvider.canProvideViewModel(eObject, properties);
+		for (final IFilteredViewProvider viewProvider : viewProviders) {
+			final double prio = viewProvider.canProvideViewModel(object, properties, requiredKeys);
 			if (prio > highestPrio) {
 				highestPrio = prio;
 				selectedProvider = viewProvider;
@@ -139,36 +138,26 @@
 		}
 
 		if (selectedProvider != null) {
-			final VView view = selectedProvider.provideViewModel(eObject, properties);
-			if (view == null) {
+			result = selectedProvider.provideViewModel(object, properties, requiredKeys);
+			if (result == null) {
 				report(new ViewModelIsNullReport());
 			}
-			return view;
 		}
 
-		return null;
-
+		return result;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.provider.EMFFormsViewService#addProvider(org.eclipse.emf.ecp.view.spi.provider.IViewProvider)
-	 */
 	@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
 	@Override
 	public void addProvider(IViewProvider viewProvider) {
-		viewProviders.add(viewProvider);
+		viewProviders.add(FilteredViewProviderAdapter.adapt(viewProvider));
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.provider.EMFFormsViewService#removeProvider(org.eclipse.emf.ecp.view.spi.provider.IViewProvider)
-	 */
 	@Override
 	public void removeProvider(IViewProvider viewProvider) {
-		viewProviders.remove(viewProvider);
+		final IFilteredViewProvider filtered = FilteredViewProviderAdapter.adapt(viewProvider);
+		viewProviders.remove(filtered);
+		FilteredViewProviderAdapter.dispose(filtered);
 	}
 
 	/**
@@ -180,4 +169,5 @@
 	protected void setReportService(ReportService reportService) {
 		this.reportService = reportService;
 	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/EMFFormsFilteredViewService.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/EMFFormsFilteredViewService.java
new file mode 100644
index 0000000..419721e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/EMFFormsFilteredViewService.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.provider;
+
+import static java.util.Collections.emptySet;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
+
+/**
+ * A specialization of the {@link EMFFormsViewService} protocol that makes explicit
+ * the support for filtering views by matching {@linkplain VViewModelProperties properties}
+ * requested by the client. Thus it understands how to interact with {@link IFilteredViewProvider}s
+ * that are {@linkplain EMFFormsViewService #addProvider(IViewProvider) added to it}.
+ *
+ * @since 1.22
+ *
+ * @see IFilteredViewProvider
+ */
+public interface EMFFormsFilteredViewService extends EMFFormsViewService {
+
+	/**
+	 * Retrieve a {@link VView} for a domain model {@code object} without any required
+	 * filter keys.
+	 *
+	 * @param object the domain model object for which a view is to be requested
+	 * @param properties the {@link VViewModelProperties properties} for providing the view, that
+	 *            may or may not include matching filters
+	 *
+	 * @return a view model for the given domain model {@code object} or {@code null} if no
+	 *         suitable provider could be found to provide one
+	 */
+	@Override
+	default VView getView(EObject object, VViewModelProperties properties) {
+		return getView(object, properties, emptySet());
+	}
+
+	/**
+	 * Retrieve a {@link VView} for a domain model {@code object} from the most confident of my
+	 * {@linkplain EMFFormsViewService#addProvider(IViewProvider) registered view providers}.
+	 *
+	 * @param object the domain model object for which a view is to be requested
+	 * @param properties the {@link VViewModelProperties properties} for providing the view, that
+	 *            may or may not include matching filters
+	 * @param requiredKeys a subset (possibly empty) of the keys in the {@code properties} that
+	 *            must be matched by any view model that I would provide. If any of these keys does not match
+	 *            a view model, then that view model must not be provided. Otherwise, it may just be less
+	 *            preferred than some other view model that does match
+	 *
+	 * @return a view model for the given domain model {@code object} or {@code null} if no
+	 *         suitable provider could be found to provide one
+	 */
+	VView getView(EObject object, VViewModelProperties properties, Collection<String> requiredKeys);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/IFilteredViewProvider.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/IFilteredViewProvider.java
new file mode 100644
index 0000000..89eec06
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/IFilteredViewProvider.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.provider;
+
+import static java.util.Collections.emptySet;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
+
+/**
+ * A specialized <em>{@linkplain IViewProvider view provider}</em> that filters views
+ * by properties in the <em>{@linkplain VViewModelProperties loading properties}</em>.
+ * The mechanism by which matching of filters is performed is unspecified, but filters are
+ * specified as key-value pairs in the {@code properties} parameter of each API method.
+ *
+ * @since 1.22
+ */
+public interface IFilteredViewProvider extends IViewProvider {
+
+	/**
+	 * Queries whether I {@linkplain #canProvideViewModel(EObject, VViewModelProperties, Collection) can provide}
+	 * without any filter properties being required.
+	 */
+	@Override
+	default double canProvideViewModel(EObject eObject, VViewModelProperties properties) {
+		return canProvideViewModel(eObject, properties, emptySet());
+	}
+
+	/**
+	 * Queries the confidence with which I can provide a view model for the given domain model
+	 * {@code object} where some keys in the {@code properties} are required to be matched in
+	 * an implementation-specific way by the view models the I have access to.
+	 *
+	 * @param object the domain model object for which a view is to be requested
+	 * @param properties the {@link VViewModelProperties properties} for providing the view, that
+	 *            may or may not include matching filters
+	 * @param requiredKeys a subset (possibly empty) of the keys in the {@code properties} that
+	 *            must be matched by any view model that I would provide. If any of these keys does not match
+	 *            a view model, then that view model must not be provided. Otherwise, it may just be less
+	 *            preferred than some other view model that does match
+	 *
+	 * @return a <strong>positive</strong> double indicating how well I am suited to
+	 *         provide a {@link VView} for the given {@code object}, or
+	 *         {@link IViewProvider#NOT_APPLICABLE} if I cannot provide a view model
+	 */
+	double canProvideViewModel(EObject object, VViewModelProperties properties,
+		Collection<String> requiredKeys);
+
+	/**
+	 * Obtains a {@linkplain #provideViewModel(EObject, VViewModelProperties, Collection) view model}
+	 * without any filter properties being required.
+	 */
+	@Override
+	default VView provideViewModel(EObject object, VViewModelProperties properties) {
+		return provideViewModel(object, properties, emptySet());
+	}
+
+	/**
+	 * Obtains the view model that I {@linkplain #canProvideViewModel(EObject, VViewModelProperties, Collection) can
+	 * provide}
+	 * for the given domain model {@code object}. This method is only called if a previous invocation of
+	 * {@link #canProvideViewModel(EObject, VViewModelProperties, Collection)} with the same arguments
+	 * returned the highest positive result amongst all available providers.
+	 *
+	 * @param object the domain model object for which a view is to be requested
+	 * @param properties the {@link VViewModelProperties properties} for providing the view, that
+	 *            may or may not include matching filters
+	 * @param requiredKeys a subset (possibly empty) of the keys in the {@code properties} that
+	 *            must be matched by any view model that I would provide. If any of these keys does not match
+	 *            a view model, then that view model must not be provided. Otherwise, it may just be less
+	 *            preferred than some other view model that does match
+	 *
+	 * @return the view model
+	 */
+	VView provideViewModel(EObject object, VViewModelProperties properties,
+		Collection<String> requiredKeys);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ViewProviderHelper.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ViewProviderHelper.java
index 660510d..29f7f13 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ViewProviderHelper.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ViewProviderHelper.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 2.0
@@ -10,10 +10,14 @@
  *
  * Contributors:
  * EclipseSource Muenchen - initial API and implementation
+ * Christian W. Damus - bug 547787
  *
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.provider;
 
+import java.util.Collection;
+import java.util.Collections;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
@@ -64,4 +68,48 @@
 		bundleContext.ungetService(serviceReference);
 		return view;
 	}
+
+	/**
+	 * Retrieve a {@link VView} for a domain model {@code object} from the most confident of my
+	 * {@linkplain EMFFormsViewService#addProvider(IViewProvider) registered view providers}.
+	 *
+	 * @param object the domain model object for which a view is to be requested
+	 * @param properties the {@link VViewModelProperties properties} for providing the view, that
+	 *            may or may not include matching filters
+	 * @param requiredKeys a subset (possibly empty) of the keys in the {@code properties} that
+	 *            must be matched by any view model that I would provide. If any of these keys does not match
+	 *            a view model, then that view model must not be provided. Otherwise, it may just be less
+	 *            preferred than some other view model that does match
+	 *
+	 * @return a view model for the given domain model {@code object} or {@code null} if no
+	 *         suitable provider could be found to provide one
+	 *
+	 * @since 1.22
+	 */
+	public static VView getView(EObject object, VViewModelProperties properties, Collection<String> requiredKeys) {
+		VView result = null;
+
+		if (bundleContext == null) {
+			return result;
+		}
+
+		final ServiceReference<EMFFormsFilteredViewService> serviceReference = bundleContext
+			.getServiceReference(EMFFormsFilteredViewService.class);
+		if (serviceReference == null) {
+			return result;
+		}
+
+		final EMFFormsFilteredViewService viewService = bundleContext.getService(serviceReference);
+		try {
+			if (requiredKeys == null) {
+				requiredKeys = Collections.emptySet();
+			}
+			result = viewService.getView(object, properties, requiredKeys);
+		} finally {
+			bundleContext.ungetService(serviceReference);
+		}
+
+		return result;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7c7df75..4c0e06a 100644
--- a/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";
+Export-Package: org.eclipse.emf.ecp.internal.ui;version="1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.internal.ui.dialogs;version="1.21.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
- org.eclipse.emf.ecp.internal.ui.model;version="1.21.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.21.0",
- org.eclipse.emf.ecp.internal.ui.util;version="1.21.0";
+ org.eclipse.emf.ecp.internal.ui.composites;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.internal.ui.dialogs;version="1.22.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
+ org.eclipse.emf.ecp.internal.ui.model;version="1.22.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.22.0",
+ org.eclipse.emf.ecp.internal.ui.util;version="1.22.0";
   x-friends:="org.eclipse.emf.ecp.explorereditorbridge,
    org.eclipse.emf.ecp.ui.e3,
    org.eclipse.emf.ecp.ui.e4,
@@ -22,17 +22,17 @@
    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.21.0";
+ org.eclipse.emf.ecp.internal.wizards;version="1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
- org.eclipse.emf.ecp.spi.ui;version="1.21.0",
- org.eclipse.emf.ecp.spi.ui.util;version="1.21.0",
- org.eclipse.emf.ecp.ui;version="1.21.0",
- org.eclipse.emf.ecp.ui.common;version="1.21.0";
+ org.eclipse.emf.ecp.internal.wizards.page;version="1.22.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
+ org.eclipse.emf.ecp.spi.ui;version="1.22.0",
+ org.eclipse.emf.ecp.spi.ui.util;version="1.22.0",
+ org.eclipse.emf.ecp.ui;version="1.22.0",
+ org.eclipse.emf.ecp.ui.common;version="1.22.0";
   x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,
    org.eclipse.emf.ecp.explorereditorbridge,
    org.eclipse.emf.ecp.ui.e3,
@@ -40,15 +40,15 @@
    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.21.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
- org.eclipse.emf.ecp.ui.util;version="1.21.0"
+ org.eclipse.emf.ecp.ui.common.dnd;version="1.22.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
+ org.eclipse.emf.ecp.ui.util;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.ui/pom.xml b/bundles/org.eclipse.emf.ecp.ui/pom.xml
index 67c746c..3e49ef4 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.validation.connector/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.validation.connector/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.validation.connector/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.validation.connector/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 81e767f..d91440b 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation Connector Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.connector;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.validation.connector;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml b/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
index ed030e7..a4eba49 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.validation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.validation/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.validation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.validation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d9be895..f857b3a 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.validation;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.validation.api;version="1.21.0";x-friends:="org.eclipse.emf.ecp.validation.connector"
+Export-Package: org.eclipse.emf.ecp.internal.validation;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.api;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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 e9ab52a..fc332ae 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 eca5a9b..72fe2b2 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.validationvieweditorbridge;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.validation;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.internal.validationvieweditorbridge;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.validation;bundle-version="[1.22.0,1.23.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 9709575..40b3e92 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 566b2d0..b85e87e 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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 0ab7fc7..77cd7bc 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9d616c7..03cc0e0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.categorization.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.categorization.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.categorization.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.categorization.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 2c0cb83..604ac8b 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3c9b441..ffd75f3 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,29 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Categorization SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.categorization.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.22.0,1.23.0)"
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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",
@@ -33,8 +35,16 @@
  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.swt.widgets;version="0.0.0",
+ org.eclipse.ui.views.properties;version="0.0.0";resolution:=optional,
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 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
+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,
+ OSGI-INF/categorizationRevealProvider.xml
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/categorizationRevealProvider.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/categorizationRevealProvider.xml
new file mode 100644
index 0000000..a5446c1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/categorizationRevealProvider.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="categorizationRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationRevealProvider"/>
+</scr:component>
\ No newline at end of file
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 de17a46..2dbc7a8 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationRevealProvider.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationRevealProvider.java
new file mode 100644
index 0000000..d4969ee
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationRevealProvider.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import static org.eclipse.emf.common.util.ECollections.singletonEList;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizableElement;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategory;
+import org.eclipse.emf.ecp.view.spi.categorization.model.util.CategorizationSwitch;
+import org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer;
+import org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractSWTTabRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillDown;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for {@link VCategorizationElement}s and
+ * {@link VCategorizableElement}s.
+ *
+ * @since 1.22
+ */
+@Component(name = "categorizationRevealProvider")
+public class CategorizationRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double containerBid = 5.0;
+	private final Double leafBid = 1.0;
+
+	private final Switch<Double> bidSwitch = new CategorizationSwitch<Double>() {
+		@Override
+		public Double caseCategorizationElement(VCategorizationElement object) {
+			return containerBid;
+		}
+
+		@Override
+		public Double caseCategorizableElement(VCategorizableElement object) {
+			return containerBid;
+		}
+
+		@Override
+		public Double caseCategory(VCategory object) {
+			return leafBid;
+		}
+	};
+
+	private final Switch<EList<? extends VElement>> childrenSwitch = new CategorizationSwitch<EList<? extends VElement>>() {
+		@Override
+		public EList<? extends VElement> caseCategory(VCategory object) {
+			return object.getComposite() != null ? singletonEList(object.getComposite()) : null;
+		}
+
+		@Override
+		public EList<? extends VElement> caseCategorization(VCategorization object) {
+			return object.getCategorizations();
+		}
+
+		@Override
+		public EList<? extends VElement> caseCategorizationElement(VCategorizationElement object) {
+			return object.getCategorizations();
+		}
+
+		@Override
+		public EList<? extends VElement> defaultCase(EObject object) {
+			return ECollections.emptyEList();
+		}
+
+		@DrillDown
+		Iterable<? extends VElement> drillDown(VElement element) {
+			return doSwitch(element);
+		}
+	};
+
+	/**
+	 * I bid on the {@code element} if it is a {@link VCategorizationElement} or some kind
+	 * of {@link VCategorizableElement}.
+	 *
+	 * @param element the element to bid on
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VElement element) {
+		return bidSwitch.doSwitch(element);
+	}
+
+	/**
+	 * Create an intermediate reveal step to drill down into a categorization {@code element}.
+	 *
+	 * @param element the categorization element in which to drill down
+	 * @param object the object to reveal
+	 * @param helper the reveal helper for drill-down
+	 * @return the drill-down reveal step
+	 */
+	@Create
+	public RevealStep reveal(VElement element, EObject object, RevealHelper helper) {
+		return helper.drillDown(this, childrenSwitch);
+	}
+
+	@Reveal
+	private RevealStep drillDown(VElement element, EObject object,
+		@Renderer AbstractSWTRenderer<? extends VAbstractCategorization> renderer,
+		RevealStep nextStep) {
+
+		return RevealStep.reveal(element, object, () -> reveal(renderer, nextStep.getViewModel()));
+	}
+
+	/**
+	 * Reveal the rendering of a {@code categorization} in its parent {@code element}
+	 * rendering in the given editor {@code context}.
+	 *
+	 * @param renderer the parent categorization renderer
+	 * @param categorization the categorization to reveal
+	 */
+	void reveal(AbstractSWTRenderer<? extends VAbstractCategorization> renderer, VElement categorization) {
+		if (!(categorization instanceof VAbstractCategorization)) {
+			return;
+		}
+
+		final VAbstractCategorization abstractCategorization = (VAbstractCategorization) categorization;
+
+		if (renderer instanceof AbstractSWTTabRenderer) {
+			final AbstractSWTTabRenderer<?> tabRenderer = (AbstractSWTTabRenderer<?>) renderer;
+			tabRenderer.showCategorization(abstractCategorization);
+		} else if (renderer instanceof AbstractJFaceTreeRenderer<?>) {
+			final AbstractJFaceTreeRenderer<?> treeRenderer = (AbstractJFaceTreeRenderer<?>) renderer;
+			treeRenderer.showCategorization(abstractCategorization);
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java
index 53f0692..deb8514 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.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 2.0
@@ -12,6 +12,7 @@
  * Edagr Mueller - initial API and implementation
  * Eugen Neufeld - Refactoring
  * Johannes Faltermeier - Refactoring
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
@@ -110,6 +111,7 @@
 	}
 
 	private SWTGridDescription gridDescription;
+	private TreeViewer treeViewer;
 	private AbstractJFaceTreeRenderer<VELEMENT>.TreeSelectionChangedListener treeSelectionChangedListener;
 
 	@Override
@@ -142,7 +144,6 @@
 	@Override
 	protected Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		TreeViewer treeViewer;
 		final EList<VAbstractCategorization> categorizations = getCategorizations();
 
 		if (categorizations.size() == 1 && categorizations.get(0) instanceof VCategory) {
@@ -389,6 +390,9 @@
 				if (maxActions < abstractCategorization.getActions().size()) {
 					maxActions = abstractCategorization.getActions().size();
 				}
+
+				// I render this view-model element
+				register(abstractCategorization);
 			}
 		}
 		if (maxActions == 0) {
@@ -476,6 +480,23 @@
 	}
 
 	/**
+	 * Reveal the control that renders the given {@code categorization}.
+	 *
+	 * @param categorization a categorization to reveal
+	 * @return whether the {@code categorization} was successfully revealed
+	 *
+	 * @since 1.22
+	 */
+	public boolean showCategorization(VAbstractCategorization categorization) {
+		// If there's only one categorization, we won't have a tree viewer. But then
+		// the categorization is always revealed, so we would have nothing to do
+		if (treeViewer != null) {
+			treeViewer.setSelection(new StructuredSelection(categorization));
+		}
+		return true;
+	}
+
+	/**
 	 * The change listener for selections of the tree.
 	 *
 	 * @author Jonas Helming
@@ -554,7 +575,9 @@
 					GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
 						.minSize(SWT.DEFAULT, 200)
 						.applyTo(render);
-					vCategorizationElement.setCurrentSelection((VCategorizableElement) child);
+					if (VCategorizableElement.class.isInstance(child)) {
+						vCategorizationElement.setCurrentSelection((VCategorizableElement) child);
+					}
 				} catch (final NoRendererFoundException e) {
 					getReportService().report(new RenderingFailedReport(e));
 				} catch (final NoPropertyDescriptorFoundExeption e) {
@@ -580,7 +603,19 @@
 		public void notifyChange(ModelChangeNotification notification) {
 			if (notification.getNotifier() instanceof VCategorizationElement
 				&& notification.getStructuralFeature() == Literals.CATEGORIZATION_ELEMENT__CURRENT_SELECTION) {
-				onSelectionChanged((VElement) notification.getNotifier());
+				/* call on selection changed if the new child is part of our subtree */
+				final Object currentSelection = notification.getRawNotification().getNewValue();
+				if (VElement.class.isInstance(currentSelection)) {
+					final VElement child = VElement.class.cast(currentSelection);
+					EObject parent = child;
+					while (EObject.class.isInstance(parent)) {
+						if (parent == getVElement()) {
+							onSelectionChanged(child);
+							break;
+						}
+						parent = parent.eContainer();
+					}
+				}
 			}
 
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractSWTTabRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractSWTTabRenderer.java
index 8855b87..cea82c1 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractSWTTabRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractSWTTabRenderer.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
@@ -325,4 +326,24 @@
 		super.dispose();
 	}
 
+	/**
+	 * Reveal the control that renders the given {@code categorization}.
+	 *
+	 * @param categorization a categorization to reveal
+	 * @return whether the {@code categorization} was successfully revealed
+	 *
+	 * @since 1.22
+	 */
+	public boolean showCategorization(VAbstractCategorization categorization) {
+		final CTabItem item = categorizationToItemMap.get(categorization);
+		final boolean result = item != null;
+
+		if (result) {
+			item.getParent().setSelection(item);
+			itemSelected(item);
+		}
+
+		return result;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7318d68..505a869 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 3af5b9f..d83643d 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0aaa2b7..1b76813 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.compoundcontrol.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.compoundcontrol.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.compoundcontrol.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.compoundcontrol.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 2332105..15c0e80 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 965f65b..eb8e992 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,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Compound Control SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.compoundcontrol.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.compoundcontrol.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 3e2a0a7..0aab5b9 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5ae7450..cdeb9c4 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.21.0.qualifier
+Bundle-Version: 1.22.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 3b45a8d..4422d83 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.context.locale/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.context.locale/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.context.locale/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.context.locale/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4e96690..6af3447 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.context.internal.locale;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.view.context.internal.locale;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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 1f9ee6c..bc95a2e 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.context/.project b/bundles/org.eclipse.emf.ecp.view.context/.project
index 98e9a2d..46402f8 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/.project
+++ b/bundles/org.eclipse.emf.ecp.view.context/.project
@@ -35,12 +35,16 @@
 			<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>

-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>

 	</natures>

 </projectDescription>

diff --git a/bundles/org.eclipse.emf.ecp.view.context/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.context/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.context/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 adaa2b9..8c4bea6 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,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Context
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.context;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.context;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.context;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.context;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.context;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.e4.core.contexts;version="[1.3.0,2.0.0)";resolution:=optional,
+ org.eclipse.emfforms.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/viewModelContextCF.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.context/OSGI-INF/viewModelContextCF.xml b/bundles/org.eclipse.emf.ecp.view.context/OSGI-INF/viewModelContextCF.xml
new file mode 100644
index 0000000..702ca4c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.context/OSGI-INF/viewModelContextCF.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="viewModelContextCF">
+   <property name="service.context.key" value="org.eclipse.emf.ecp.view.spi.context.ViewModelContext"/>
+   <service>
+      <provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.context.ViewModelContextContextFunction"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.context/build.properties b/bundles/org.eclipse.emf.ecp.view.context/build.properties
index 9920905..5ad9a6b 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.context/build.properties
@@ -1,5 +1,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
+               OSGI-INF/,\
                .,\
                plugin.xml,\
                schema/,\
diff --git a/bundles/org.eclipse.emf.ecp.view.context/pom.xml b/bundles/org.eclipse.emf.ecp.view.context/pom.xml
index b3c9cd7..39af20b 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextContextFunction.java b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextContextFunction.java
new file mode 100644
index 0000000..f754d97
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextContextFunction.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.context;
+
+import org.eclipse.e4.core.contexts.ContextFunction;
+import org.eclipse.e4.core.contexts.IContextFunction;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A context function that casts the {@link EMFFormsViewContext} as a
+ * {@link ViewModelContext}.
+ *
+ * @since 1.22
+ */
+@Component(name = "viewModelContextCF", service = IContextFunction.class, property = "service.context.key=org.eclipse.emf.ecp.view.spi.context.ViewModelContext")
+public class ViewModelContextContextFunction extends ContextFunction {
+
+	@Override
+	public Object compute(IEclipseContext context, String contextKey) {
+		final EMFFormsViewContext result = context.get(EMFFormsViewContext.class);
+		return result instanceof ViewModelContext ? result : null;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl.java b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl.java
index 7b5670c..2d2691a 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl.java
@@ -10,10 +10,13 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bugs 527740, 533522, 545686
+ * Christian W. Damus - bugs 527740, 533522, 545686, 527686, 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.context;
 
+import static java.util.Collections.singleton;
+
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -104,22 +107,14 @@
 	/** The domain object. */
 	private EObject domainObject;
 
-	/** The view model change listener. Needs to be thread safe. */
-	private final List<ModelChangeListener> viewModelChangeListener = new CopyOnWriteArrayList<ModelChangeListener>();
-
-	/** The domain model change listeners. Needs to be thread safe. */
-	private final GroupedListenerList<ModelChangeListener> domainModelChangeListener =
-		// needed to make sure that all data operations are done before any validation etc provided by services happens
-		new GroupedListenerList<ModelChangeListener>(VDomainModelReference.class);
-
 	/** The root domain model change listeners. Needs to be thread safe. */
 	private final List<RootDomainModelChangeListener> rootDomainModelChangeListeners = new CopyOnWriteArrayList<RootDomainModelChangeListener>();
 
 	/** The domain model content adapter. */
-	private EContentAdapter domainModelContentAdapter;
+	private final DomainModelContentAdapter domainModelContentAdapter;
 
 	/** The view model content adapter. */
-	private EContentAdapter viewModelContentAdapter;
+	private final ViewModelContentAdapter viewModelContentAdapter;
 
 	private final Set<EMFFormsContextListener> contextListeners = new CopyOnWriteArraySet<EMFFormsContextListener>();
 
@@ -321,6 +316,14 @@
 			}
 		}
 
+		viewModelContentAdapter = new ViewModelContentAdapter();
+
+		if (parentContext == null) {
+			domainModelContentAdapter = new DomainModelContentAdapter();
+		} else {
+			domainModelContentAdapter = null;
+		}
+
 		instantiate();
 	}
 
@@ -364,27 +367,39 @@
 	 * Instantiate.
 	 */
 	private void instantiate() {
-
 		addResourceIfNecessary();
 
 		resolveDomainReferences(getViewModel(), getDomainModel());
-		if (parentContext == null) {
-			domainModelContentAdapter = new DomainModelContentAdapter();
+
+		// Only the root context has this adapter to attach it to the model. Child contents
+		// all push listeners up to the root and expect their own domain object to be in
+		// the content tree of the root context's domain object
+		if (domainModelContentAdapter != null) {
 			domainObject.eAdapters().add(domainModelContentAdapter);
 		}
-		loadImmediateServices();
 
-		viewModelContentAdapter = new ViewModelContentAdapter();
+		// Generate local view services from our provider. Do this before loading
+		// contributed immediate services because these may create child contexts
+		// even before we are ready and these provided services need to be instantiated
+		// in me before that (otherwise, an array "once" provider may be consumed by
+		// a child context before I can get to it)
+		viewServices.addAll(viewServiceProvider.getViewModelServices(view, domainObject));
+
+		loadImmediateServices();
 
 		view.eAdapters().add(viewModelContentAdapter);
 
-		// Generate local view services from our provider
-		viewServices.addAll(viewServiceProvider.getViewModelServices(view, domainObject));
-
 		for (final ViewModelService viewService : viewServices) {
 			viewService.instantiate(this);
 		}
 
+		// If I have a parent, then I should be added to it if I wasn't already.
+		// e.g., if this is the re-instantiate after dispose on changing the domain
+		// model, then I need to be added back as a child because I was removed
+		if (parentContext instanceof ViewModelContextImpl) {
+			((ViewModelContextImpl) parentContext).addChildContext(getParentVElement(), getDomainModel(), this);
+		}
+
 		for (final EMFFormsContextListener contextListener : contextListeners) {
 			contextListener.contextInitialised();
 		}
@@ -527,7 +542,7 @@
 	 */
 	@Override
 	public void dispose() {
-		if (isDisposed) {
+		if (isDisposed || isDisposing) {
 			return;
 		}
 		isDisposing = true;
@@ -535,7 +550,10 @@
 			listener.contextDisposed(this);
 		}
 		innerDispose();
-		viewModelChangeListener.clear();
+		viewModelContentAdapter.dispose();
+		if (domainModelContentAdapter != null) {
+			domainModelContentAdapter.dispose();
+		}
 		rootDomainModelChangeListeners.clear();
 
 		isDisposing = false;
@@ -565,7 +583,7 @@
 		if (modelChangeListener == null) {
 			throw new IllegalArgumentException(MODEL_CHANGE_LISTENER_MUST_NOT_BE_NULL);
 		}
-		viewModelChangeListener.add(modelChangeListener);
+		viewModelContentAdapter.add(modelChangeListener);
 	}
 
 	@Override
@@ -573,7 +591,7 @@
 		// if (isDisposed) {
 		// throw new IllegalStateException("The ViewModelContext was already disposed.");
 		// }
-		viewModelChangeListener.remove(modelChangeListener);
+		viewModelContentAdapter.remove(modelChangeListener);
 	}
 
 	@Override
@@ -585,7 +603,7 @@
 			throw new IllegalArgumentException(MODEL_CHANGE_LISTENER_MUST_NOT_BE_NULL);
 		}
 		if (parentContext == null) {
-			domainModelChangeListener.add(modelChangeListener);
+			domainModelContentAdapter.add(modelChangeListener);
 		} else {
 			parentContext.registerDomainChangeListener(modelChangeListener);
 		}
@@ -601,7 +619,7 @@
 			return;
 		}
 		if (parentContext == null) {
-			domainModelChangeListener.remove(modelChangeListener);
+			domainModelContentAdapter.remove(modelChangeListener);
 		} else {
 			parentContext.unregisterDomainChangeListener(modelChangeListener);
 		}
@@ -710,6 +728,9 @@
 	 */
 	private class ViewModelContentAdapter extends EContentAdapter {
 
+		/** The view model change listener. Needs to be thread safe. */
+		private final List<ModelChangeListener> viewModelChangeListeners = new CopyOnWriteArrayList<ModelChangeListener>();
+
 		@Override
 		public void notifyChanged(Notification notification) {
 			super.notifyChanged(notification);
@@ -724,7 +745,7 @@
 				return;
 			}
 			final ModelChangeNotification modelChangeNotification = new ModelChangeNotification(notification);
-			for (final ModelChangeListener modelChangeListener : viewModelChangeListener) {
+			for (final ModelChangeListener modelChangeListener : viewModelChangeListeners) {
 				modelChangeListener.notifyChange(modelChangeNotification);
 			}
 		}
@@ -736,7 +757,7 @@
 			if (isDisposing || isDisposed) {
 				return;
 			}
-			for (final ModelChangeListener modelChangeListener : viewModelChangeListener) {
+			for (final ModelChangeListener modelChangeListener : viewModelChangeListeners) {
 				if (ModelChangeAddRemoveListener.class.isInstance(modelChangeListener)) {
 					ModelChangeAddRemoveListener.class.cast(modelChangeListener).notifyAdd(notifier);
 				}
@@ -753,13 +774,48 @@
 			if (VElement.class.isInstance(notifier)) {
 				VElement.class.cast(notifier).setDiagnostic(null);
 			}
-			for (final ModelChangeListener modelChangeListener : viewModelChangeListener) {
+			for (final ModelChangeListener modelChangeListener : viewModelChangeListeners) {
 				if (ModelChangeAddRemoveListener.class.isInstance(modelChangeListener)) {
 					ModelChangeAddRemoveListener.class.cast(modelChangeListener).notifyRemove(notifier);
 				}
 			}
 		}
 
+		void add(ModelChangeListener viewModelChangeListener) {
+			viewModelChangeListeners.add(viewModelChangeListener);
+
+			// do not notify while being disposed
+			if (isDisposing || isDisposed || !view.eAdapters().contains(this)
+				|| !(viewModelChangeListener instanceof ModelChangeAddRemoveListener)) {
+				return;
+			}
+
+			// This listener needs to discover all of the view model as new
+			final ModelChangeAddRemoveListener addRemove = (ModelChangeAddRemoveListener) viewModelChangeListener;
+			for (final Iterator<EObject> iter = EcoreUtil.getAllContents(singleton(view), resolve()); iter.hasNext();) {
+				addRemove.notifyAdd(iter.next());
+			}
+		}
+
+		void remove(ModelChangeListener viewModelChangeListener) {
+			viewModelChangeListeners.remove(viewModelChangeListener);
+
+			// do not notify while being disposed
+			if (isDisposing || !view.eAdapters().contains(this)
+				|| !(viewModelChangeListener instanceof ModelChangeAddRemoveListener)) {
+				return;
+			}
+
+			// This listener needs to un-discover all of the view model
+			final ModelChangeAddRemoveListener addRemove = (ModelChangeAddRemoveListener) viewModelChangeListener;
+			for (final Iterator<EObject> iter = EcoreUtil.getAllContents(singleton(view), resolve()); iter.hasNext();) {
+				addRemove.notifyRemove(iter.next());
+			}
+		}
+
+		void dispose() {
+			viewModelChangeListeners.clear();
+		}
 	}
 
 	/**
@@ -767,6 +823,12 @@
 	 */
 	private class DomainModelContentAdapter extends EContentAdapter {
 
+		/** The domain model change listeners. Needs to be thread safe. */
+		private final GroupedListenerList<ModelChangeListener> domainModelChangeListeners =
+			// needed to make sure that all data operations are done before any validation etc provided by services
+			// happens
+			new GroupedListenerList<ModelChangeListener>(VDomainModelReference.class);
+
 		@Override
 		public void notifyChanged(Notification notification) {
 			super.notifyChanged(notification);
@@ -777,7 +839,7 @@
 			}
 
 			final ModelChangeNotification modelChangeNotification = new ModelChangeNotification(notification);
-			for (final ModelChangeListener modelChangeListener : domainModelChangeListener) {
+			for (final ModelChangeListener modelChangeListener : domainModelChangeListeners) {
 				modelChangeListener.notifyChange(modelChangeNotification);
 			}
 		}
@@ -789,7 +851,7 @@
 			if (isDisposing) {
 				return;
 			}
-			for (final ModelChangeListener modelChangeListener : domainModelChangeListener) {
+			for (final ModelChangeListener modelChangeListener : domainModelChangeListeners) {
 				if (ModelChangeAddRemoveListener.class.isInstance(modelChangeListener)) {
 					ModelChangeAddRemoveListener.class.cast(modelChangeListener).notifyAdd(notifier);
 				}
@@ -803,13 +865,51 @@
 			if (isDisposing) {
 				return;
 			}
-			for (final ModelChangeListener modelChangeListener : domainModelChangeListener) {
+			for (final ModelChangeListener modelChangeListener : domainModelChangeListeners) {
 				if (ModelChangeAddRemoveListener.class.isInstance(modelChangeListener)) {
 					ModelChangeAddRemoveListener.class.cast(modelChangeListener).notifyRemove(notifier);
 				}
 			}
 		}
 
+		void dispose() {
+			domainModelChangeListeners.clear();
+		}
+
+		void add(ModelChangeListener domainModelChangeListener) {
+			domainModelChangeListeners.add(domainModelChangeListener);
+
+			// do not notify while being disposed
+			if (isDisposing || !domainObject.eAdapters().contains(this)
+				|| !(domainModelChangeListener instanceof ModelChangeAddRemoveListener)) {
+				return;
+			}
+
+			// This listener needs to discover all of the domain model as new
+			final ModelChangeAddRemoveListener addRemove = (ModelChangeAddRemoveListener) domainModelChangeListener;
+			for (final Iterator<EObject> iter = EcoreUtil.getAllContents(singleton(domainObject), resolve()); iter
+				.hasNext();) {
+				addRemove.notifyAdd(iter.next());
+			}
+		}
+
+		void remove(ModelChangeListener domainModelChangeListener) {
+			domainModelChangeListeners.remove(domainModelChangeListener);
+
+			// do not notify while being disposed
+			if (isDisposing || !domainObject.eAdapters().contains(this)
+				|| !(domainModelChangeListener instanceof ModelChangeAddRemoveListener)) {
+				return;
+			}
+
+			// This listener needs to un-discover all of the domain model
+			final ModelChangeAddRemoveListener addRemove = (ModelChangeAddRemoveListener) domainModelChangeListener;
+			for (final Iterator<EObject> iter = EcoreUtil.getAllContents(singleton(domainObject), resolve()); iter
+				.hasNext();) {
+				addRemove.notifyRemove(iter.next());
+			}
+		}
+
 	}
 
 	private final Set<Object> users = new LinkedHashSet<Object>();
@@ -870,16 +970,19 @@
 		keyObjectMap.put(key, value);
 	}
 
-	private void addChildContext(VElement vElement, EObject eObject, ViewModelContext childContext) {
+	private void addChildContext(VElement parentElement, EObject eObject, ViewModelContext childContext) {
+		if (hasChildContext(parentElement, eObject, childContext)) {
+			return;
+		}
 
 		if (!childContexts.containsKey(eObject)) {
 			childContexts.put(eObject, new LinkedHashSet<ViewModelContext>());
 		}
 		childContexts.get(eObject).add(childContext);
-		childContextUsers.put(childContext, vElement);
+		childContextUsers.put(childContext, parentElement);
 
 		for (final EMFFormsContextListener contextListener : contextListeners) {
-			contextListener.childContextAdded(vElement, childContext);
+			contextListener.childContextAdded(parentElement, childContext);
 		}
 		// notify all global View model services
 		for (final ViewModelService viewModelService : viewServices) {
@@ -890,14 +993,38 @@
 
 	}
 
+	/**
+	 * Query whether I have a valid child context for the given domain {@code object} under
+	 * the given parent view-model element.
+	 *
+	 * @param parentElement the parent view-model element
+	 * @param object a domain model element
+	 * @param childContext a child context expected possibly for that element
+	 * @return {@code true} if the given context is currently registered as a child
+	 *         context for the {@code object}; {@code false}, otherwise
+	 */
+	private boolean hasChildContext(VElement parentElement, EObject object, ViewModelContext childContext) {
+		boolean result = childContexts.getOrDefault(object, Collections.emptySet()).contains(childContext);
+		result = result && childContextUsers.get(childContext) == parentElement;
+		return result;
+	}
+
 	private void removeChildContext(EObject eObject, ViewModelContext context) {
-		final boolean removed = childContexts.get(eObject).remove(context);
-		if (removed) {
-			childContextUsers.remove(context);
+		final Set<ViewModelContext> children = childContexts.get(eObject);
+		final boolean removed = children != null && children.remove(context);
+
+		if (!removed) {
+			return;
 		}
-		if (childContexts.get(eObject).size() == 0) {
+
+		childContextUsers.remove(context);
+		if (children.size() == 0) {
 			childContexts.remove(eObject);
 		}
+
+		for (final EMFFormsContextListener contextListener : contextListeners) {
+			contextListener.childContextDisposed(context);
+		}
 	}
 
 	/**
@@ -947,10 +1074,10 @@
 
 			@Override
 			public void contextDisposed(ViewModelContext viewModelContext) {
-				removeChildContext(eObject, viewModelContext);
-				for (final EMFFormsContextListener contextListener : contextListeners) {
-					contextListener.childContextDisposed(viewModelContext);
-				}
+				// If the child context had had its domain object changed along the way,
+				// then re-mapped it, so be sure to use it here for accuracy (it is still
+				// accessible while disposal is in progress)
+				removeChildContext(viewModelContext.getDomainModel(), viewModelContext);
 			}
 		});
 		addChildContext(parent, eObject, childContext);
@@ -987,26 +1114,27 @@
 		contextListeners.remove(contextListener);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext#changeDomainModel(org.eclipse.emf.ecore.EObject)
-	 */
 	@Override
 	public void changeDomainModel(EObject newDomainModel) {
 		if (isDisposed) {
 			throw new IllegalStateException(THE_VIEW_MODEL_CONTEXT_WAS_ALREADY_DISPOSED);
 		}
 
-		// =============
-		// DISPOSE CODE
+		if (newDomainModel == domainObject) {
+			// Nothing to do
+			return;
+		}
+
 		innerDispose();
 
-		// =======================
-
+		final EObject oldObject = domainObject;
 		domainObject = newDomainModel;
 
-		// re-instantiate
+		// if I have a parent, it tracks me now under the wrong key
+		if (parentContext instanceof ViewModelContextImpl) {
+			((ViewModelContextImpl) parentContext).updateChildContext(oldObject, domainObject, this);
+		}
+
 		instantiate();
 
 		for (final RootDomainModelChangeListener listener : rootDomainModelChangeListeners) {
@@ -1014,15 +1142,32 @@
 		}
 	}
 
+	/**
+	 * Re-key a child context under its new domain object.
+	 *
+	 * @param oldDomainObject the domain object under which I currently track the child context
+	 * @param newDomainObject the new domain object of the child context
+	 * @param childContext the child context to re-key
+	 */
+	private void updateChildContext(EObject oldDomainObject, EObject newDomainObject, ViewModelContext childContext) {
+		final Set<ViewModelContext> oldSibs = childContexts.get(oldDomainObject);
+		if (oldSibs != null) {
+			oldSibs.remove(childContext);
+		}
+		final Set<ViewModelContext> newSibs = childContexts.computeIfAbsent(newDomainObject,
+			__ -> new LinkedHashSet<ViewModelContext>());
+		newSibs.add(childContext);
+	}
+
 	private void innerDispose() {
 		if (resource != null) {
 			resource.getContents().remove(domainObject);
 		}
 
 		view.eAdapters().remove(viewModelContentAdapter);
-		domainObject.eAdapters().remove(domainModelContentAdapter);
-
-		domainModelChangeListener.clear();
+		if (domainModelContentAdapter != null) {
+			domainObject.eAdapters().remove(domainModelContentAdapter);
+		}
 
 		for (final ViewModelService viewService : viewServices) {
 			viewService.dispose();
@@ -1041,6 +1186,11 @@
 		childContextUsers.clear();
 		childContexts.clear();
 
+		// Remove me from my parent context, if any
+		if (parentContext instanceof ViewModelContextImpl) {
+			((ViewModelContextImpl) parentContext).removeChildContext(getDomainModel(), this);
+		}
+
 		releaseOSGiServices();
 		serviceMap.clear();
 
@@ -1084,6 +1234,7 @@
 	 *
 	 * @author Christian W. Damus
 	 *
+	 * @param <T> the type of listener stored in the list
 	 * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=460158">bug 460158</a>
 	 */
 	private static final class GroupedListenerList<T> implements Iterable<T> {
diff --git a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelContextFactory.java b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelContextFactory.java
index abeb89a..737250e 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelContextFactory.java
+++ b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelContextFactory.java
@@ -65,7 +65,7 @@
 	 */
 	public ViewModelContext createViewModelContext(VElement view, EObject domainObject,
 		ViewModelService... modelServices) {
-		return createViewModelContext(view, domainObject, new ArrayOnceViewModelServiceProvider(modelServices));
+		return createViewModelContext(view, domainObject, provide(modelServices));
 	}
 
 	/**
@@ -129,4 +129,16 @@
 		return new ViewModelContextImpl(view, domainObject, serviceProvider, contextValues);
 	}
 
+	/**
+	 * Obtain a view-model service provider that statically provides a set of services.
+	 *
+	 * @param modelServices model services to provider
+	 * @return the static provider of those services
+	 *
+	 * @since 1.22
+	 */
+	public static ViewModelServiceProvider provide(ViewModelService... modelServices) {
+		return new ArrayOnceViewModelServiceProvider(modelServices);
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.control.multireference/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a6c0fdb..93eaa96 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,31 +2,35 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Multireference
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.control.multireference;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.control.multireference;version="1.21.0";x-friends:="org.eclipse.emfforms.ide.view.multisegment"
+Export-Package: org.eclipse.emf.ecp.view.internal.control.multireference;version="1.22.0";x-friends:="org.eclipse.emfforms.ide.view.multisegment,org.eclipse.emf.ecp.ui.view.editor.controls"
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/multiReferenceRendererService.xml,OSGI-INF/LinkOnlyMultiReferenceRendererService.xml
+Service-Component: OSGI-INF/multiReferenceRendererService.xml,
+ OSGI-INF/LinkOnlyMultiReferenceRendererService.xml,
+ OSGI-INF/multiReferenceRevealProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
- org.eclipse.emfforms.internal.core.services.label;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.internal.core.services.label;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/multiReferenceRevealProvider.xml b/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/multiReferenceRevealProvider.xml
new file mode 100644
index 0000000..6344869
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/multiReferenceRevealProvider.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="multiReferenceRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceRevealProvider"/>
+</scr:component>
\ No newline at end of file
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 f9981ef..a530d5b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRevealProvider.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRevealProvider.java
new file mode 100644
index 0000000..8730561
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRevealProvider.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.control.multireference;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+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.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for multi-reference controls that show contained objects
+ * (not just cross-referenced).
+ */
+@Component(name = "multiReferenceRevealProvider")
+public class MultiReferenceRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double basicBid = 1.0;
+
+	/**
+	 * I bid on the {@code element} if it is a simple {@link VControl} specified by
+	 * a DMR that resolves to a multi-valued containment reference.
+	 *
+	 * @param context the view model context in which to resolve the DMR
+	 * @param control the control to bid on
+	 * @param databinding the databinding service in which to resolve the DMR
+	 * @return my bid
+	 * @throws DatabindingFailedException on failure to resolve the DMR
+	 */
+	@Bid
+	public Double canReveal(ViewModelContext context, VControl control, EMFFormsDatabinding databinding)
+		throws DatabindingFailedException {
+
+		Double result = null;
+
+		EReference resolvedReference = null;
+
+		// Not a specialization like TableControl
+		if (control.eClass() == VViewPackage.Literals.CONTROL) {
+			final IValueProperty<?, ?> property = databinding.getValueProperty(control.getDomainModelReference(),
+				context.getDomainModel());
+			final Object propertyType = property.getValueType();
+			if (propertyType instanceof EReference) {
+				resolvedReference = (EReference) propertyType;
+			}
+		}
+
+		if (resolvedReference != null && resolvedReference.isMany() && resolvedReference.isContainment()) {
+			result = basicBid;
+		}
+
+		return result;
+	}
+
+	/**
+	 * Create a terminal reveal step to select and reveal the {@code object} in the
+	 * rendered {@code element}.
+	 *
+	 * @param context the view model context in which to find a renderer for the tree
+	 * @param helper a helper for deferred revealing
+	 * @param control the multi-reference control view model
+	 * @param object the object to reveal
+	 * @param databinding the databinding service in which to resolve the DMR
+	 * @return the drill-down reveal step
+	 * @throws DatabindingFailedException on failure to resolve the DMR
+	 */
+	@Create
+	public RevealStep reveal(ViewModelContext context, RevealHelper helper, VControl control, EObject object,
+		EMFFormsDatabinding databinding) throws DatabindingFailedException {
+
+		RevealStep result = RevealStep.FAILED;
+
+		final IObservableList<?> list = databinding.getObservableList(control.getDomainModelReference(),
+			context.getDomainModel());
+		if (list != null && list.contains(object)) {
+			result = helper.defer(this);
+		}
+
+		return result;
+	}
+
+	@Reveal
+	private RevealStep doReveal(@Renderer MultiReferenceSWTRenderer renderer, EObject object) {
+		final VControl control = renderer.getVElement();
+		return RevealStep.reveal(control, object, () -> renderer.reveal(object));
+	}
+
+}
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 2843560..ffcd9d3 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
@@ -12,7 +12,7 @@
  * Eugen Neufeld - initial API and implementation
  * Lucas Koehler - use data binding services
  * Martin Fleck - bug 487101
- * Christian W. Damus - bug 527736
+ * Christian W. Damus - bugs 527736, 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.control.multireference;
 
@@ -60,9 +60,9 @@
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.IDisposable;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolverImpl;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.common.sort.NumberAwareStringComparator;
@@ -91,9 +91,11 @@
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
 import org.eclipse.jface.viewers.TableViewerEditor;
@@ -127,7 +129,7 @@
 	private static final String ICON_MOVE_DOWN = "icons/move_down.png"; //$NON-NLS-1$
 	private static final String ICON_MOVE_UP = "icons/move_up.png"; //$NON-NLS-1$
 
-	private final BundleResolver bundleResolver = new BundleResolverImpl();
+	private final BundleResolver bundleResolver = BundleResolverFactory.createBundleResolver();
 	private final ImageRegistryService imageRegistryService;
 	private EMFFormsLocalizationService l10n;
 
@@ -1034,7 +1036,7 @@
 	 * @param selectedObject the selected {@link EObject}
 	 */
 	protected void handleDoubleClick(EObject selectedObject) {
-		final ReferenceService referenceService = getViewModelContext().getService(ReferenceService.class);
+		final ReferenceService referenceService = getReferenceService();
 		referenceService.openInNewContext(selectedObject);
 	}
 
@@ -1046,7 +1048,7 @@
 	 * @param structuralFeature The corresponding {@link EStructuralFeature}
 	 */
 	protected void handleAddExisting(TableViewer tableViewer, EObject eObject, EStructuralFeature structuralFeature) {
-		final ReferenceService referenceService = getViewModelContext().getService(ReferenceService.class);
+		final ReferenceService referenceService = getReferenceService();
 		referenceService.addExistingModelElements(eObject, (EReference) structuralFeature);
 	}
 
@@ -1058,11 +1060,20 @@
 	 * @param structuralFeature The corresponding {@link EStructuralFeature}
 	 */
 	protected void handleAddNew(TableViewer tableViewer, EObject eObject, EStructuralFeature structuralFeature) {
-		final ReferenceService referenceService = getViewModelContext().getService(ReferenceService.class);
+		final ReferenceService referenceService = getReferenceService();
 		referenceService.addNewModelElements(eObject, (EReference) structuralFeature, true);
 	}
 
 	/**
+	 * Override to customize linking and creation of EObjects in this renderer's EReference.
+	 *
+	 * @return The {@link ReferenceService} used to link and create new EObjects in this renderer's reference.
+	 */
+	protected ReferenceService getReferenceService() {
+		return getViewModelContext().getService(ReferenceService.class);
+	}
+
+	/**
 	 * Method for deleting elements.
 	 *
 	 * @param tableViewer the {@link TableViewer}
@@ -1275,4 +1286,25 @@
 	protected ILabelProvider getLabelProvider() {
 		return labelProvider;
 	}
+
+	/**
+	 * Select and reveal an {@code object} in my table.
+	 *
+	 * @param object an object to reveal
+	 *
+	 * @since 1.22
+	 */
+	void reveal(Object object) {
+		checkRenderer();
+
+		if (tableViewer != null) {
+			final ISelection newSelection = new StructuredSelection(object);
+			if (!newSelection.equals(tableViewer.getSelection())) {
+				tableViewer.setSelection(newSelection, true);
+			} else {
+				tableViewer.reveal(object);
+			}
+		}
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d4d7a09..52e2a0e 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,35 +2,35 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Core SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
- org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.21.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.21.0";
+Export-Package: org.eclipse.emf.ecp.view.internal.core.swt;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
+ org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.22.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.22.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.21.0"
+ org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.200,2.0.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)"
 Import-Package: javax.inject;version="1.0.0",
- org.eclipse.emfforms.spi.common.locale;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 b1e4bfd..3d4c6c6 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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/DateTimeControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlSWTRenderer.java
index 1cb32fa..3670630 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlSWTRenderer.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
@@ -158,22 +159,24 @@
 			withPreSetValidation(new UpdateValueStrategy()),
 			new DateModelToTargetUpdateStrategy());
 
-		domainModelChangeListener = new ModelChangeListener() {
-			@Override
-			public void notifyChange(ModelChangeNotification notification) {
-				EStructuralFeature structuralFeature;
-				try {
-					structuralFeature = (EStructuralFeature) getModelValue().getValueType();
-				} catch (final DatabindingFailedException ex) {
-					getReportService().report(new DatabindingFailedReport(ex));
-					return;
+		if (domainModelChangeListener == null) {
+			domainModelChangeListener = new ModelChangeListener() {
+				@Override
+				public void notifyChange(ModelChangeNotification notification) {
+					EStructuralFeature structuralFeature;
+					try {
+						structuralFeature = (EStructuralFeature) getModelValue().getValueType();
+					} catch (final DatabindingFailedException ex) {
+						getReportService().report(new DatabindingFailedReport(ex));
+						return;
+					}
+					if (structuralFeature.equals(notification.getStructuralFeature())) {
+						updateChangeListener(notification.getRawNotification().getNewValue());
+					}
 				}
-				if (structuralFeature.equals(notification.getStructuralFeature())) {
-					updateChangeListener(notification.getRawNotification().getNewValue());
-				}
-			}
-		};
-		getViewModelContext().registerDomainChangeListener(domainModelChangeListener);
+			};
+			getViewModelContext().registerDomainChangeListener(domainModelChangeListener);
+		}
 
 		return new Binding[] { binding };
 	}
@@ -281,6 +284,7 @@
 
 		if (bUnset != null) {
 			bUnset.setVisible(isVisible);
+			GridData.class.cast(bUnset.getLayoutData()).exclude = !isVisible;
 		}
 
 		if (setBtn != null) {
@@ -293,12 +297,17 @@
 					} else {
 						setBtn.setVisible(isVisible);
 					}
+					GridData.class.cast(setBtn.getLayoutData()).exclude = !setBtn.isVisible();
 				}
 			} catch (final DatabindingFailedException ex) {
 				getReportService().report(new DatabindingFailedReport(ex));
 			}
 		}
 
+		// Null check to avoid NPE during postInit
+		if (composite != null) {
+			composite.layout();
+		}
 	}
 
 	private void updateStack() throws DatabindingFailedException {
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRenderer.java
index 915c5e7..ad6534b 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRenderer.java
@@ -194,22 +194,24 @@
 	 */
 	protected IObservableValue<Collection<?>> getAvailableChoicesValue() throws DatabindingFailedException {
 		if (availableChoicesValue == null) {
-			final EObject domainObject = getViewModelContext().getDomainModel();
-
 			// It makes no sense to use this renderer with a different kind of property than this
 			final IEMFObservable emfObservable = (IEMFObservable) getModelValue();
+
+			// the domain object must be the same as the object of the feature
+			final EObject domainObject = (EObject) emfObservable.getObserved();
+
 			final EStructuralFeature feature = emfObservable.getStructuralFeature();
 
 			final Optional<IItemPropertySource> propertySource = EMFUtils.adapt(domainObject,
 				IItemPropertySource.class);
 			final Optional<IItemPropertyDescriptor> propertyDescriptor = propertySource
-				.map(source -> source.getPropertyDescriptor(domainObject, feature.getName()));
+				.map(source -> source.getPropertyDescriptor(domainObject, feature));
 
 			availableChoicesValue = new ComputedValue<Collection<?>>(Collection.class) {
+				// maybe better subscribe to all changes in the current context and update?
 				private final Optional<IChangeNotifier> changeNotifier = propertySource
 					.filter(IChangeNotifier.class::isInstance).map(IChangeNotifier.class::cast);
 				private final INotifyChangedListener listener = __ -> getRealm().exec(this::makeDirty);
-
 				{
 					changeNotifier.ifPresent(cn -> cn.addListener(listener));
 				}
@@ -241,6 +243,13 @@
 	}
 
 	@Override
+	protected void rootDomainModelChanged() throws DatabindingFailedException {
+		availableChoicesValue.dispose();
+		availableChoicesValue = null;
+		super.rootDomainModelChanged();
+	}
+
+	@Override
 	protected void dispose() {
 		super.dispose();
 		pushValue.dispose();
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 042ab5f..b672e98 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
@@ -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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Alexandra Buzila - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
@@ -20,6 +21,7 @@
 import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
@@ -27,6 +29,7 @@
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.edit.spi.util.ECPModelElementChangeListener;
 import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
+import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.ecp.view.model.common.util.RendererUtil;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer;
@@ -37,6 +40,8 @@
 import org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
@@ -56,6 +61,7 @@
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -87,7 +93,8 @@
 	private final ImageRegistryService imageRegistryService;
 	private final EMFFormsLabelProvider emfFormsLabelProvider;
 	private ECPModelElementChangeListener modelElementChangeListener;
-	private final EMFFormsEditSupport emfFormsEditSuppport;
+	private ComposedAdapterFactory composedAdapterFactory;
+	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
 
 	/**
 	 * @param vElement the element to render
@@ -98,20 +105,43 @@
 	 * @param vtViewTemplateProvider the view template provider
 	 * @param localizationService the localization service
 	 * @param imageRegistryService the image registry service
-	 * @param emfFormsEditSuppport the edit support
+	 * @param emfFormsEditSupport the EMFFormsEditSupport
+	 *
+	 * @deprecated with 1.22
+	 */
+	@Deprecated
+	@Inject
+	// CHECKSTYLE.OFF: ParameterNumber
+	public LinkControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsLocalizationService localizationService,
+		ImageRegistryService imageRegistryService, EMFFormsEditSupport emfFormsEditSupport) {
+		// CHECKSTYLE.ON: ParameterNumber
+		this(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			localizationService, imageRegistryService);
+	}
+
+	/**
+	 * @param vElement the element to render
+	 * @param viewContext the view model context
+	 * @param reportService the report service
+	 * @param emfFormsDatabinding the data binding service
+	 * @param emfFormsLabelProvider the label provider
+	 * @param vtViewTemplateProvider the view template provider
+	 * @param localizationService the localization service
+	 * @param imageRegistryService the image registry service
 	 */
 	@Inject
 	// CHECKSTYLE.OFF: ParameterNumber
 	public LinkControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
 		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
 		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsLocalizationService localizationService,
-		ImageRegistryService imageRegistryService, EMFFormsEditSupport emfFormsEditSuppport) {
+		ImageRegistryService imageRegistryService) {
 		// CHECKSTYLE.ON: ParameterNumber
 		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
 		this.localizationService = localizationService;
 		this.imageRegistryService = imageRegistryService;
 		this.emfFormsLabelProvider = emfFormsLabelProvider;
-		this.emfFormsEditSuppport = emfFormsEditSuppport;
 	}
 
 	@Override
@@ -416,8 +446,7 @@
 	 * @throws NoLabelFoundException
 	 */
 	protected String getText(Object value) {
-		final String linkName = emfFormsEditSuppport.getText(getVElement().getDomainModelReference(),
-			getViewModelContext().getDomainModel(), value);
+		final String linkName = adapterFactoryItemDelegator.getText(value);
 		return linkName == null ? "" : linkName; //$NON-NLS-1$
 	}
 
@@ -431,8 +460,7 @@
 		if (value == null) {
 			return null;
 		}
-		final Object imageDescription = emfFormsEditSuppport.getImage(getVElement().getDomainModelReference(),
-			getViewModelContext().getDomainModel(), value);
+		final Object imageDescription = adapterFactoryItemDelegator.getImage(value);
 		if (imageDescription == null) {
 			return null;
 		}
@@ -509,10 +537,22 @@
 	}
 
 	@Override
+	protected void postInit() {
+		super.postInit();
+		composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+			new CustomReflectiveItemProviderAdapterFactory(),
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+		adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(composedAdapterFactory);
+	}
+
+	@Override
 	protected void dispose() {
 		if (modelElementChangeListener != null) {
 			modelElementChangeListener.remove();
 		}
+		if (composedAdapterFactory != null) {
+			composedAdapterFactory.dispose();
+		}
 		super.dispose();
 	}
 
@@ -553,6 +593,48 @@
 		}
 	}
 
+	@Override
+	public void scrollToReveal() {
+		if (canReveal(addReferenceBtn) && addReferenceBtn.isEnabled()) {
+			scrollToReveal(addReferenceBtn);
+		} else if (canReveal(newReferenceBtn) && newReferenceBtn.isEnabled()) {
+			scrollToReveal(newReferenceBtn);
+		} else {
+			super.scrollToReveal();
+		}
+	}
+
+	@Override
+	protected void applyReadOnly() {
+		super.applyReadOnly();
+		updateButtonVisibility();
+		if (isRenderingFinished()) {
+			mainComposite.getParent().layout();
+		}
+	}
+
+	/**
+	 * Updates the visibility of 'add reference', 'new reference', and 'delete reference' buttons according to the bound
+	 * input.
+	 */
+	protected void updateButtonVisibility() {
+		final boolean isVisible = !getVElement().isEffectivelyReadonly();
+
+		// Check for null because not all buttons might have been created
+		if (addReferenceBtn != null) {
+			addReferenceBtn.setVisible(isVisible);
+			GridData.class.cast(addReferenceBtn.getLayoutData()).exclude = !isVisible;
+		}
+		if (newReferenceBtn != null) {
+			newReferenceBtn.setVisible(isVisible);
+			GridData.class.cast(newReferenceBtn.getLayoutData()).exclude = !isVisible;
+		}
+		if (deleteReferenceButton != null) {
+			deleteReferenceButton.setVisible(isVisible);
+			GridData.class.cast(deleteReferenceButton.getLayoutData()).exclude = !isVisible;
+		}
+	}
+
 	/** Selection listener for the delete reference button. */
 	class DeleteSelectionAdapter extends SelectionAdapter {
 		@SuppressWarnings("unused")
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTRenderer.java
index 6cbbf5b..e3a56d6 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTRenderer.java
@@ -58,6 +58,7 @@
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -248,6 +249,7 @@
 
 	private Label validationIcon;
 	private Control editControl;
+	private Button unsetButton;
 
 	/**
 	 * {@inheritDoc}
@@ -398,7 +400,6 @@
 
 		final ButtonPlacementType buttonPlacement = getUnsettableStyleProperty().getButtonPlacement();
 		final Composite controlComposite;
-		final Button unsetButton;
 		if (buttonPlacement == ButtonPlacementType.RIGHT_OF_LABEL) {
 			controlComposite = new Composite(composite, SWT.NONE);
 			unsetButton = new Button(composite, SWT.PUSH);
@@ -635,4 +636,16 @@
 		}
 		return styleProperty;
 	}
+
+	@Override
+	protected void applyReadOnly() {
+		super.applyReadOnly();
+		if (unsetButton != null) {
+			final boolean readonly = getVElement().isEffectivelyReadonly();
+			unsetButton.setVisible(!readonly);
+			final GridData data = (GridData) unsetButton.getLayoutData();
+			data.exclude = readonly;
+			unsetButton.getParent().layout();
+		}
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4411c69..7f9fbf2 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.custom.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.0)";visibility:=reexport
 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 50b15fd..22d6715 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c22a591..4fe39a7 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,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.view.spi.custom.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.custom.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.custom.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.custom.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.custom.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.spi.asserts;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.common.spi;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.spi.asserts;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.22.0,1.23.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
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 f9ffb10..29550ba 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.21.0-SNAPSHOT</version>

+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2fa78a7..abd61e6 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.di.renderer;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.di.renderer;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 980a90f..fb7ece9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f6ac718..3655958 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,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Custom View SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.ui.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.view.custom.ui.swt.test",
- org.eclipse.emf.ecp.view.spi.custom.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.custom.swt;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.custom.ui.swt.test",
+ org.eclipse.emf.ecp.view.spi.custom.swt;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.22.0,1.23.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",
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 3eda722..eb11291 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.edapt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.edapt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9d4a445..35bc139 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edapt.history;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 840e894..b4af80f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e0a55e8..066e312 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.group.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 b22af53..100e52f 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.group.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.group.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 562e9f3..94ce71f 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.group.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.group.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.group.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.group.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.group.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.group.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 5fa0bcd..a13c01c 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.21.0-SNAPSHOT</version>

+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 20bf230..d8b4367 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,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Collapsable Group
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.collapsable
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsable;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsable;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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",
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 550a642..67b7048 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9147e4f..fa5bec3 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,20 +2,20 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 bae7ba8..8a14f2e 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1677bfc..c017f37 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,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: AlignmentGroup SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.embedded
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 d15e0c5..bb451e7 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.21.0-SNAPSHOT</version>

+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 60bde3b..5b4f901 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,27 +2,27 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.spi.group.swt;version="1.21.0",
- org.eclipse.emfforms.internal.group.swt;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.group.swt;version="1.22.0",
+ org.eclipse.emfforms.internal.group.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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",
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 4d7bf8f..634d4fd 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3819ff1..8e31222 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 be91b3c..8879cd7 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 374457d..df73415 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.groupedgrid.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.groupedgrid.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.groupedgrid.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.groupedgrid.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 6d915d9..bbf2610 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.project b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.project
index b0c23f8..5c7377f 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.project
@@ -41,6 +41,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cb44839..7d02c05 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,20 +2,20 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.layout;version="0.0.0",
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 8309b15..75ae8b8 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.21.0-SNAPSHOT</version>

+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 952fc27..4c52198 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 939d5b5..d7bcc6b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cd39d56..155c829 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.horizontal.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.horizontal.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.horizontal.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.horizontal.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 864cd1d..e201461 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2f752bd..db2778e 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,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Horizontal UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.ui.swt
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.horizontal.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.horizontal.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.horizontal.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.horizontal.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.internal.core.swt;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
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 a50b804..abc168b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 959d8da..ab0e97a 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 f7bc6dd..a029aea 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3a014fd..d518678 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.indexdmr.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.indexdmr.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.indexdmr.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.indexdmr.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 850556d..217957a 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bf15aa1..0b88f47 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,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Index DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.tooling;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.indexdmr.tooling;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.indexdmr.tooling;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.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)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/PrefixDmrDomainModelReferenceRendererService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 2ed9bd7..4eb82cb 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/TargetDMRControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/TargetDMRControlSWTRenderer.java
index 554872b..63e8a49 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/TargetDMRControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/TargetDMRControlSWTRenderer.java
@@ -103,6 +103,8 @@
 
 		final Collection<EClass> classes = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 			.getDomainModelReference());
+		// Don't allow to create a plain DMR legacy mode
+		classes.remove(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE);
 
 		final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
 			eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 64c71c8..01a1643 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 a0bb009..f3255af 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 fc39010..e357b02 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.keyattributedmr.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.keyattributedmr.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.keyattributedmr.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.keyattributedmr.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 e3bd7b4..4ea7a35 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 676aa4d..01e383b 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,31 +2,31 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.keyattributedmr.tooling;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.keyattributedmr.tooling;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 e74bde7..e8574c9 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRControlSWTRenderer.java
index c93b4d6..10e5ea1 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRControlSWTRenderer.java
@@ -84,6 +84,8 @@
 
 		final Collection<EClass> classes = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 			.getDomainModelReference());
+		// Don't allow to create a plain DMR legacy mode
+		classes.remove(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE);
 
 		final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
 			eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8a588de..0f7e6e7 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.label.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 5234071..d08d3ae 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.label.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.label.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4586597..4eb8e51 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.label.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.label.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.label.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.label.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.label.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.label.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 d8c28c4..9b3ec82 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2a171ea..854b424 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.label.rap;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.label.rap;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.label.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.22.0,1.23.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 4528978..7d8ed1d 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 661a26b..1d01403 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,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Label UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.ui.swt
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.label.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.label.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.label.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.label.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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",
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 493971f..348a265 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.21.0-SNAPSHOT</version>

+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 18bf571..c6babaf 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 28d7360..7ad06ea 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 84cc8f9..9a43ded 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.mappingdmr.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.mappingdmr.model.edit"
+Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.mappingdmr.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 3d3fd12..1c4aeb3 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a9b87ef..d5ce8cd 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,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.tooling;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.mappingdmr.tooling;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.mappingdmr.tooling;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.common.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 28746b8..a4e9a71 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassControlSWTRenderer.java
index b29562f..be8f438 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassControlSWTRenderer.java
@@ -174,6 +174,8 @@
 
 		final Collection<EClass> classes = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 			.getDomainModelReference());
+		// Don't allow to create a plain DMR legacy mode
+		classes.remove(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE);
 
 		final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
 			eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.migrator/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.migrator/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.migrator/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.migrator/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5c294a3..589f3d9 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Migrator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.migrator;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.21.0",
- org.eclipse.emf.ecp.spi.view.migrator.string;version="1.21.0",
- org.eclipse.emf.ecp.view.migrator;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.22.0",
+ org.eclipse.emf.ecp.spi.view.migrator.string;version="1.22.0",
+ org.eclipse.emf.ecp.view.migrator;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml b/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
index 29a6392..3bbfd85 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/.project b/bundles/org.eclipse.emf.ecp.view.model.common.di/.project
index c80f94f..11249f4 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common.di/.project
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/.project
@@ -30,6 +30,11 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.common.di/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common.di/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b9965c9..453f8a1 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,25 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.common.di.messages;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.common.di.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.common.di.service;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.common.di.service.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.common.di.util;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
+Export-Package: org.eclipse.emf.ecp.view.model.common.di.annotations;version="1.22.0",
+ org.eclipse.emf.ecp.view.model.common.di.messages;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.service;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.service.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.common.di;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.0,1.9.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.21.0,1.22.0)"
+ org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.common.di
 Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/viewServiceSupplier.xml
+Import-Package: javax.inject;version="1.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.model.common.di/OSGI-INF/viewServiceSupplier.xml b/bundles/org.eclipse.emf.ecp.view.model.common.di/OSGI-INF/viewServiceSupplier.xml
new file mode 100644
index 0000000..e26b34e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/OSGI-INF/viewServiceSupplier.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="viewServiceSupplier">
+   <property name="dependency.injection.annotation" value="org.eclipse.emf.ecp.view.model.common.di.annotations.ViewService"/>
+   <service>
+      <provide interface="org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.model.common.di.service.impl.ViewServiceSupplier"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/build.properties b/bundles/org.eclipse.emf.ecp.view.model.common.di/build.properties
index f11dbf8..68dc9e6 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common.di/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/build.properties
@@ -1,6 +1,7 @@
 source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
+               OSGI-INF/,\
                .,\
                about.html,\
                plugin.xml,\
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 51f641c..ad85726 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/annotations/Renderer.java b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/annotations/Renderer.java
new file mode 100644
index 0000000..8530c01
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/annotations/Renderer.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.common.di.annotations;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+import org.eclipse.emf.ecp.view.model.common.AbstractRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+
+/**
+ * Annotation indicating an injectable dependency of {@link AbstractRenderer} type.
+ * Injection of an existing renderer via this annotation requires that the Eclipse context
+ * include values for both of
+ * <ul>
+ * <li>the renderer view-model element: {@link VElement VElement.class}</li>
+ * <li>the view context in which the element is rendered: {@link EMFFormsViewContext EMFFormsViewContext.class}</li>
+ * </ul>
+ *
+ * @since 1.22
+ */
+@Documented
+@Qualifier
+@Retention(RUNTIME)
+@Target({ FIELD, PARAMETER })
+public @interface Renderer {
+	// No attributes
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/annotations/ViewService.java b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/annotations/ViewService.java
new file mode 100644
index 0000000..28fa15b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/annotations/ViewService.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.common.di.annotations;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceFactory;
+
+/**
+ * Annotation indicating an injectable dependency of some view-model service type. This
+ * may actually be a {@link ViewModelService} or some other kind of service provided
+ * by an {@link EMFFormsViewServiceFactory}. In any case, injection of services from the
+ * view context does depend on the Eclipse context containing an {@link EMFFormsViewContext}.
+ *
+ * @since 1.22
+ */
+@Documented
+@Qualifier
+@Retention(RUNTIME)
+@Target({ FIELD, PARAMETER })
+public @interface ViewService {
+	// No attributes
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/service/impl/ViewServiceSupplier.java b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/service/impl/ViewServiceSupplier.java
new file mode 100644
index 0000000..d703b03
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/model/common/di/service/impl/ViewServiceSupplier.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.common.di.service.impl;
+
+import java.util.Optional;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.ViewService;
+import org.eclipse.emf.ecp.view.spi.common.di.ContextBasedObjectSupplier;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Eclipse DI supplier of the {@linkplain ViewService view-model service} dependency.
+ * Resolvable only in a context that has a {@link ViewModelContext} available.
+ *
+ * @see ViewService
+ */
+@Component(name = "viewServiceSupplier", service = ExtendedObjectSupplier.class, property = "dependency.injection.annotation=org.eclipse.emf.ecp.view.model.common.di.annotations.ViewService")
+public class ViewServiceSupplier extends ContextBasedObjectSupplier<ViewService, Object> {
+
+	/**
+	 * Initializes me.
+	 */
+	public ViewServiceSupplier() {
+		super(ViewService.class, Object.class);
+	}
+
+	@Override
+	protected boolean checkDependencies(ViewService qualifier, Class<?> requestedType, IEclipseContext context) {
+		final ViewModelContext viewContext = context.get(ViewModelContext.class);
+		return viewContext != null;
+	}
+
+	@Override
+	protected Optional<?> compute(ViewService qualifier, Class<?> requestedType, IEclipseContext context) {
+		Optional<?> result;
+
+		final ViewModelContext viewContext = context.get(ViewModelContext.class);
+		if (!viewContext.hasService(requestedType)) {
+			// Maybe we can get it from the Eclipse context
+			result = Optional.ofNullable(context.get(requestedType));
+		} else {
+			result = Optional.ofNullable(viewContext.getService(requestedType));
+		}
+
+		return result;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/spi/common/di/ContextBasedObjectSupplier.java b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/spi/common/di/ContextBasedObjectSupplier.java
new file mode 100644
index 0000000..7cc6be0
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/src/org/eclipse/emf/ecp/view/spi/common/di/ContextBasedObjectSupplier.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.common.di;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Optional;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.contexts.RunAndTrack;
+import org.eclipse.e4.core.di.IInjector;
+import org.eclipse.e4.core.di.InjectionException;
+import org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier;
+import org.eclipse.e4.core.di.suppliers.IObjectDescriptor;
+import org.eclipse.e4.core.di.suppliers.IRequestor;
+import org.eclipse.e4.core.di.suppliers.PrimaryObjectSupplier;
+
+/**
+ * A partial implementation of an object supplier that computes its results from
+ * values in the {@linkplain IEclipseContext Eclipse context}.
+ *
+ * @param <A> my qualifier annotation type
+ * @param <T> my value type
+ * @since 1.22
+ */
+public abstract class ContextBasedObjectSupplier<A extends Annotation, T> extends ExtendedObjectSupplier {
+
+	private final Class<A> qualifierType;
+	private final Class<T> valueType;
+
+	/**
+	 * Initializes me with the type of value that I supply and the
+	 * qualifier annotation type that I key on.
+	 *
+	 * @param qualifierType the qualifier annotation type
+	 * @param valueType the value type
+	 */
+	protected ContextBasedObjectSupplier(Class<A> qualifierType, Class<T> valueType) {
+		super();
+
+		this.qualifierType = qualifierType;
+		this.valueType = valueType;
+	}
+
+	@Override
+	public Object get(IObjectDescriptor descriptor, IRequestor requestor, boolean track, boolean group) {
+		final Class<?> desiredType = getRawType(descriptor.getDesiredType());
+		final A qualifier = descriptor.getQualifier(qualifierType);
+
+		if (!valueType.isAssignableFrom(desiredType)) {
+			return IInjector.NOT_A_VALUE;
+		}
+		final Class<? extends T> requestedType = desiredType.asSubclass(valueType);
+
+		final IEclipseContext ctx = getContext(requestor);
+		if (ctx == null) {
+			return IInjector.NOT_A_VALUE;
+		}
+
+		if (!checkDependencies(qualifier, requestedType, ctx)) {
+			return IInjector.NOT_A_VALUE;
+		}
+
+		final Object[] result = { null };
+		final Runnable compute = () -> {
+			final Optional<? extends T> computedResult = compute(qualifier, requestedType, ctx);
+			if (computedResult == null) {
+				throw new InjectionException(String.format(
+					"null computation for @%s injection", qualifierType.getSimpleName())); //$NON-NLS-1$
+			}
+			result[0] = computedResult.map(Object.class::cast)
+				.orElse(IInjector.NOT_A_VALUE);
+		};
+		if (track) {
+			ctx.runAndTrack(new RunAndTrack() {
+
+				@Override
+				public boolean changed(IEclipseContext context) {
+					final boolean valid = requestor.isValid();
+					final boolean notify = result[0] != null && requestor.isValid();
+					if (valid) {
+						compute.run();
+					}
+					if (notify) {
+						requestor.resolveArguments(false);
+						requestor.execute();
+					}
+					return valid;
+				}
+			});
+		} else {
+			compute.run();
+		}
+
+		return result[0];
+	}
+
+	/**
+	 * Check whether the Eclipse {@code context} has the dependencies required to
+	 * compute my result. The default implementation just attempts to compute
+	 * the result, which is useful for simple cases where the computation is not
+	 * expensive and does not have undesired side-effects if it fails.
+	 *
+	 * @param qualifier the qualifier annotation, which may have attributes required for the computation
+	 * @param requestedType the type requested for injection
+	 * @param context the Eclipse context
+	 * @return {@code true} if I can compute a value from this {@code context};
+	 *         {@code false}, otherwise
+	 *
+	 * @see #compute(Annotation, IEclipseContext)
+	 */
+	protected boolean checkDependencies(A qualifier, Class<? extends T> requestedType, IEclipseContext context) {
+		final Optional<? extends T> test = compute(qualifier, requestedType, context);
+		return test != null && test.isPresent();
+	}
+
+	/**
+	 * Compute my value from the Eclipse {@code context}. An empty result
+	 * indicates that the value does not exist (the {@link IInjector#NOT_A_VALUE}
+	 * special result for the object-supplier protocol). Injection of {@code null}
+	 * values is not supported.
+	 *
+	 * @param qualifier the qualifier annotation, which may have attributes required for the computation
+	 * @param requestedType the type requested for injection
+	 * @param context the Eclipse context
+	 * @return the result of the computation (possibly empty, but not {@code null})
+	 */
+	protected abstract Optional<? extends T> compute(A qualifier, Class<? extends T> requestedType,
+		IEclipseContext context);
+
+	private static Class<?> getRawType(Type type) {
+		if (type instanceof Class<?>) {
+			return (Class<?>) type;
+		} else if (type instanceof ParameterizedType) {
+			return getRawType(((ParameterizedType) type).getRawType());
+		} else {
+			return Object.class;
+		}
+	}
+
+	@SuppressWarnings("restriction")
+	private static IEclipseContext getContext(IRequestor requestor) {
+		PrimaryObjectSupplier supplier = null;
+
+		if (requestor instanceof org.eclipse.e4.core.internal.di.Requestor<?>) {
+			supplier = ((org.eclipse.e4.core.internal.di.Requestor<?>) requestor).getPrimarySupplier();
+		}
+
+		if (supplier instanceof org.eclipse.e4.core.internal.contexts.ContextObjectSupplier) {
+			return ((org.eclipse.e4.core.internal.contexts.ContextObjectSupplier) supplier).getContext();
+		}
+
+		return null;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.common/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1d598e7..f598599 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.21.0",
- org.eclipse.emf.ecp.view.model.common.edit.provider;version="1.21.0",
- org.eclipse.emf.ecp.view.model.common.util;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.common.callback;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.22.0",
+ org.eclipse.emf.ecp.view.model.common.edit.provider;version="1.22.0",
+ org.eclipse.emf.ecp.view.model.common.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.common.callback;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.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 03507cd..2423074 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer.java
index 95089ae..ed04b9c 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer.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 2.0
@@ -10,9 +10,14 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.common;
 
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.EList;
+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.emfforms.spi.common.report.ReportService;
@@ -53,6 +58,8 @@
 		this.vElement = vElement;
 		this.viewModelContext = viewContext;
 		this.reportService = reportService;
+
+		register(vElement);
 	}
 
 	/**
@@ -81,6 +88,12 @@
 	 */
 	protected void dispose() {
 		disposed = true;
+
+		// JUnit tests often mock view-model elements, so there may not be an adapter list
+		final EList<Adapter> adapters = vElement.eAdapters();
+		if (adapters != null) {
+			adapters.removeIf(a -> a.isAdapterForType(this));
+		}
 	}
 
 	/**
@@ -106,4 +119,106 @@
 		return reportService;
 	}
 
+	/**
+	 * Associate me with a view model element as its renderer. Multiple view-model elements
+	 * may be associated with one renderer.
+	 *
+	 * @param viewModelElement the view model element to register as rendered by me
+	 *
+	 * @since 1.22
+	 */
+	protected void register(VElement viewModelElement) {
+		// JUnit tests often mock view-model elements, so there may not be an adapter list
+		final EList<Adapter> adapters = viewModelElement.eAdapters();
+		if (adapters != null) {
+			viewModelElement.eAdapters().add(new RendererAdapter());
+		}
+	}
+
+	/**
+	 * Query the renderer that renders a given view model {@code element} in a particular
+	 * view model {@code context}.
+	 *
+	 * @param element a view model element rendered in some {@code context}
+	 * @param context the view model rendering {@code context}
+	 * @return the renderer, or {@code null} if the {@code element} is not rendered in this {@code context}
+	 *
+	 * @since 1.22
+	 */
+	public static AbstractRenderer<? extends VElement> getRenderer(VElement element, ViewModelContext context) {
+		// JUnit tests often mock view-model elements, so there may not be an adapter list
+		final EList<Adapter> adapters = element.eAdapters();
+		if (adapters == null) {
+			return null;
+		}
+
+		@SuppressWarnings("unchecked")
+		final AbstractRenderer<? extends VElement>.RendererAdapter adapter = (AbstractRenderer<? extends VElement>.RendererAdapter) EcoreUtil
+			.getAdapter(adapters, new ContextKey(context));
+		return adapter != null ? adapter.getRenderer() : null;
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Adapter that associates a view model element with the renderer that renders it.
+	 *
+	 * @since 1.22
+	 */
+	private final class RendererAdapter extends AdapterImpl {
+
+		RendererAdapter() {
+			super();
+		}
+
+		@Override
+		public boolean isAdapterForType(Object type) {
+			return type == AbstractRenderer.class
+				|| type == AbstractRenderer.this
+				|| type instanceof Class<?> && ((Class<?>) type).isInstance(AbstractRenderer.this)
+				|| type instanceof ContextKey && ((ContextKey) type).hasContext(getViewModelContext());
+		}
+
+		AbstractRenderer<? extends VElement> getRenderer() {
+			return AbstractRenderer.this;
+		}
+
+	}
+
+	/**
+	 * A wrapper for the view model context used as a recognized type for the
+	 * renderer adapter that cannot be confused with any other adapter that uses
+	 * a view model context as its type.
+	 *
+	 * @since 1.22
+	 */
+	private static final class ContextKey {
+		private final ViewModelContext context;
+
+		ContextKey(ViewModelContext context) {
+			super();
+
+			this.context = context;
+		}
+
+		boolean hasContext(ViewModelContext context) {
+			return isInContext(this.context, context);
+		}
+
+		/**
+		 * Is a {@code context} either a child of or the same as a {@code parent} context?
+		 *
+		 * @param parent a possible parent context
+		 * @param context a possible child context
+		 * @return {@code true} if the {@code context} is or is, recursively, a child of the
+		 *         {@code parent}; {@code false}, otherwise
+		 */
+		private boolean isInContext(ViewModelContext parent, ViewModelContext context) {
+			return parent == context
+				|| context.getParentContext() != null && isInContext(parent, context.getParentContext());
+		}
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edapt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.edapt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edapt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.edapt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 37870cc..9124c56 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,9 +2,9 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.view.model.edapt._160to170;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.view.model.edapt._160to170;version="1.22.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.edapt.migration;bundle-version="[1.1.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.edapt
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 4e930bd..49221c0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8704782..855e496 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.edit;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.model.provider;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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
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 1155f23..e17c972 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c9b1e15..e92c3ac 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,21 +2,21 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.internal.project.installer;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.internal.project.handlers;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.internal.project.installer;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.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 d95dd42..87748fc 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/src/org/eclipse/emf/ecp/view/model/internal/project/handlers/CreateViewModelProjectCommandHandler.java b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/src/org/eclipse/emf/ecp/view/model/internal/project/handlers/CreateViewModelProjectCommandHandler.java
index c7c8023..ba3d0d6 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/src/org/eclipse/emf/ecp/view/model/internal/project/handlers/CreateViewModelProjectCommandHandler.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/src/org/eclipse/emf/ecp/view/model/internal/project/handlers/CreateViewModelProjectCommandHandler.java
@@ -24,22 +24,14 @@
 import org.eclipse.ui.handlers.HandlerUtil;
 
 /**
- * @author Alexandra Buzila
- *
- */
-
-/**
  *
  * Handler for creating a new project for a view model.
  *
+ * @author Alexandra Buzila
  */
 public class CreateViewModelProjectCommandHandler extends AbstractHandler {
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
+	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		// get selected ecore
 		final IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.editor/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 987210f..c50391a 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,25 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.editor;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.presentation;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer"
+Export-Package: org.eclipse.emf.ecp.view.model.actions;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.presentation;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer",
+ org.eclipse.emf.ecp.view.model.refactoring;version="1.22.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.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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.ide.view.service;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.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/plugin.xml b/bundles/org.eclipse.emf.ecp.view.model.editor/plugin.xml
index 3580bf3..e483ed3 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/plugin.xml
@@ -78,6 +78,21 @@
          </iterate>
       </definition>
    </extension>
-
-
+   <extension
+         point="org.eclipse.ltk.core.refactoring.deleteParticipants">
+      <deleteParticipant
+            class="org.eclipse.emf.ecp.view.model.refactoring.ViewModelDeleteParticipant"
+            id="org.eclipse.emf.ecp.view.model.editor.deleteParticipant"
+            name="ViewModelDeleteParticipant">
+         <enablement>
+            <adapt
+                  type="org.eclipse.core.resources.IFile">
+               <test
+                     property="org.eclipse.core.resources.name"
+                     value="*.view">
+               </test>
+            </adapt>
+         </enablement>
+      </deleteParticipant>
+   </extension>
 </plugin>
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 1cf8e78..e0eaa84 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/ContributionUtil.java b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ContributionUtil.java
new file mode 100644
index 0000000..dac1503
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ContributionUtil.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.presentation;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.util.Optional;
+import java.util.Scanner;
+import java.util.stream.Collectors;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.osgi.framework.Constants;
+
+/**
+ * Util class used during the creation and deletion of view models to update other project files accordingly.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public final class ContributionUtil {
+
+	private static final String MANIFEST_PATH = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
+
+	private ContributionUtil() {
+	}
+
+	/**
+	 * Checks whether the project is a plugin project.
+	 *
+	 * @param project the project to checks
+	 * @return true if the project has the plugin nature
+	 */
+	public static boolean isPluginProject(IProject project) {
+		try {
+			return project.hasNature("org.eclipse.pde.PluginNature"); //$NON-NLS-1$
+		} catch (final CoreException ex) {
+			// not interested in handling the exception
+			return false;
+		}
+	}
+
+	/**
+	 * Checks whether the project is a fragment project.
+	 *
+	 * @param project the project to checks
+	 * @return true if the Manifest has a fragment host
+	 */
+	public static boolean isFragmentProject(IProject project) {
+		try {
+			final IResource manifest = project.findMember(MANIFEST_PATH);
+			if (manifest == null || !IFile.class.isInstance(manifest)) {
+				/* no osgi project at all */
+				return false;
+			}
+			final InputStream inputStream = IFile.class.cast(manifest).getContents(true);
+			final Scanner scanner = new Scanner(inputStream, "UTF-8"); //$NON-NLS-1$
+			/* read file as one string */
+			final String content = scanner.useDelimiter("\\A").next(); //$NON-NLS-1$
+			scanner.close();
+			/* Every fragment has a fragment host header in the manifest */
+			final int index = content.indexOf(Constants.FRAGMENT_HOST);
+			return index != -1;
+		} catch (final CoreException ex) {
+			return false;
+		}
+	}
+
+	/**
+	 * Util method which allows to parse an IFile.
+	 *
+	 * @param file the IFile to parse
+	 * @return The content of the IFile
+	 * @throws UnsupportedEncodingException
+	 * @throws IOException Thrown if file is not readable
+	 * @throws CoreException Thrown if eclipse cannot read the file
+	 */
+	public static Optional<String> parseIFile(IFile file) throws IOException, CoreException {
+		if (!file.exists()) {
+			return Optional.empty();
+		}
+		try (BufferedReader br = new BufferedReader(
+			new InputStreamReader(file.getContents(true), file.getCharset()))) {
+			return Optional.ofNullable(br.lines().collect(Collectors.joining(System.lineSeparator())));
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ViewModelWizard.java b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ViewModelWizard.java
index 924deee..0082f7a 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ViewModelWizard.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ViewModelWizard.java
@@ -17,7 +17,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -25,7 +24,6 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.Scanner;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
@@ -61,7 +59,6 @@
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 import org.eclipse.ui.part.FileEditorInput;
-import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 
 /**
@@ -72,7 +69,6 @@
  */
 public class ViewModelWizard extends Wizard implements INewWizard {
 
-	private static final String MANIFEST_PATH = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
 	private static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.model.presentation"; //$NON-NLS-1$
 	private Object selectedContainer;
 	private List<EClass> selectedEClasses;
@@ -382,7 +378,7 @@
 			return false;
 		}
 		final IProject project = page.getModelFile().getProject();
-		return isPluginProject(project);
+		return ContributionUtil.isPluginProject(project);
 	}
 
 	/**
@@ -430,7 +426,9 @@
 							page.openEditor(new FileEditorInput(modelFile),
 								workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString())
 									.getId());
+							modelFile.getProject().refreshLocal(IResource.DEPTH_INFINITE, progressMonitor);
 						}
+
 					} catch (final Exception exception) {
 						ViewEditorPlugin.INSTANCE.log(exception);
 					} finally {
@@ -466,6 +464,7 @@
 		final IProject project = modelFile.getProject();
 		final String projectRelPath = modelFile.getProjectRelativePath().toString();
 		final int lastPathDelimiter = projectRelPath.lastIndexOf("/"); //$NON-NLS-1$
+		final String pluginXml = "plugin.xml"; //$NON-NLS-1$
 		final String path;
 		if (lastPathDelimiter == -1) {
 			path = projectRelPath;
@@ -484,18 +483,21 @@
 			while ((line = in.readLine()) != null) {
 				if (line.contains(includes)) {
 					boolean found = false;
+					boolean foundPlugin = false;
 					while (line.contains(",\\")) //$NON-NLS-1$
 					{
 						// entry start
-						int start = line.indexOf("="); //$NON-NLS-1$
-						if (start == -1) {
-							start = 0;
-						}
+						final int start = line.indexOf("="); //$NON-NLS-1$
 
 						final String entry = line.substring(start + 1, line.indexOf(",\\")).trim(); //$NON-NLS-1$
 
 						if (entry.equals(path)) {
 							found = true;
+						}
+						if (entry.equals(pluginXml)) {
+							foundPlugin = true;
+						}
+						if (found && foundPlugin) {
 							break;
 						}
 						contents.append(line + "\n"); //$NON-NLS-1$
@@ -510,7 +512,18 @@
 						}
 						final String entry = line.substring(start).trim();
 						if (!entry.equals(path)) {
-							contents.append(path + ",\\\n"); //$NON-NLS-1$
+							contents.append("               " + path + ",\\\n"); //$NON-NLS-1$ //$NON-NLS-2$
+						}
+					}
+					if (!foundPlugin) {
+						// check last line
+						int start = line.indexOf("="); //$NON-NLS-1$
+						if (start == -1) {
+							start = 0;
+						}
+						final String entry = line.substring(start).trim();
+						if (!entry.equals(pluginXml)) {
+							contents.append("               " + pluginXml + ",\\\n"); //$NON-NLS-1$ //$NON-NLS-2$
 						}
 					}
 				}
@@ -540,10 +553,10 @@
 	 */
 	protected void addContribution(IFile modelFile) {
 		final IProject project = modelFile.getProject();
-		if (!isPluginProject(project)) {
+		if (!ContributionUtil.isPluginProject(project)) {
 			return;
 		}
-		final boolean isFragmentProject = isFragmentProject(project);
+		final boolean isFragmentProject = ContributionUtil.isFragmentProject(project);
 		final String contributionFileName = isFragmentProject ? "fragment.xml" : "plugin.xml"; //$NON-NLS-1$ //$NON-NLS-2$
 		final IFile pluginFile = project.getFile(contributionFileName);
 		try {
@@ -552,7 +565,6 @@
 					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?eclipse version=\"3.4\"?>\n<{0}>\n</{0}>", //$NON-NLS-1$
 					isFragmentProject ? "fragment" : "plugin"); //$NON-NLS-1$//$NON-NLS-2$
 				pluginFile.create(new ByteArrayInputStream(xmlContents.getBytes()), true, null);
-				project.refreshLocal(IResource.DEPTH_INFINITE, null);
 			}
 			final BufferedReader in = new BufferedReader(new InputStreamReader(pluginFile.getContents()));
 			final String extension = "org.eclipse.emf.ecp.view.model.provider.xmi.file"; //$NON-NLS-1$
@@ -591,7 +603,6 @@
 			out.flush();
 			out.close();
 
-			project.refreshLocal(IResource.DEPTH_INFINITE, null);
 		} catch (final CoreException e) {
 			ViewEditorPlugin.INSTANCE.log(new Status(IStatus.ERROR, PLUGIN_ID, e.getMessage(), e));
 		} catch (final IOException e) {
@@ -600,41 +611,6 @@
 	}
 
 	/**
-	 * Checks whether the project is a plugin project.
-	 *
-	 * @param project the project to checks
-	 * @return true if the project has the plugin nature
-	 */
-	private boolean isPluginProject(IProject project) {
-		try {
-			return project.hasNature("org.eclipse.pde.PluginNature"); //$NON-NLS-1$
-		} catch (final CoreException ex) {
-			// not interested in handling the exception
-			return false;
-		}
-	}
-
-	private boolean isFragmentProject(IProject project) {
-		try {
-			final IResource manifest = project.findMember(MANIFEST_PATH);
-			if (manifest == null || !IFile.class.isInstance(manifest)) {
-				/* no osgi project at all */
-				return false;
-			}
-			final InputStream inputStream = IFile.class.cast(manifest).getContents(true);
-			final Scanner scanner = new Scanner(inputStream, "UTF-8"); //$NON-NLS-1$
-			/* read file as one string */
-			final String content = scanner.useDelimiter("\\A").next(); //$NON-NLS-1$
-			scanner.close();
-			/* Every fragment has a fragment host header in the manifest */
-			final int index = content.indexOf(Constants.FRAGMENT_HOST);
-			return index != -1;
-		} catch (final CoreException ex) {
-			return false;
-		}
-	}
-
-	/**
 	 * Return the {@link IDEViewModelRegistry}.
 	 *
 	 * @return the {@link IDEViewModelRegistry}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/refactoring/ViewModelDeleteParticipant.java b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/refactoring/ViewModelDeleteParticipant.java
new file mode 100644
index 0000000..1880102
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/refactoring/ViewModelDeleteParticipant.java
@@ -0,0 +1,197 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.model.refactoring;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.Adapters;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecp.view.model.presentation.ContributionUtil;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.DeleteParticipant;
+import org.eclipse.ltk.core.refactoring.participants.ResourceChangeChecker;
+
+/**
+ * Delete Participant for View Models.
+ * This class cleans up the plugin.xml.
+ *
+ * @author Eugen Neufeld
+ **/
+
+public class ViewModelDeleteParticipant extends DeleteParticipant {
+	private static final Pattern EMPTY_PLUGIN_PATTERN = Pattern.compile("<plugin>\\s*</plugin>", //$NON-NLS-1$
+		Pattern.DOTALL | Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
+
+	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+	private static final Pattern EMPTY_XMI_EXTENSIONPOINT = Pattern.compile(
+		"<extension.*point=\"org.eclipse.emf.ecp.view.model.provider.xmi.file\">\\s*</extension>", //$NON-NLS-1$
+		Pattern.DOTALL | Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
+	private static final String ONE_LINE_FILE = "<file filePath=\"%s\"/>"; //$NON-NLS-1$
+	private static final String MULTI_LINE_FILE = "<file\\s*filePath=\"%s\">\\s*</file>"; //$NON-NLS-1$
+	private static final String REMOVE_PLUGIN_XML = "plugin.xml,?\\\\?\\s*"; //$NON-NLS-1$
+	private static final String REMOVE_FOLDER = "%s/,?\\\\?\\s*"; //$NON-NLS-1$
+	private static final String REMOVE_VIEW = "%s,?\\\\?\\s*"; //$NON-NLS-1$
+	private static final String CLEAN_PLUGIN_XML = ",\\\\\\s*$"; //$NON-NLS-1$
+
+	/**
+	 * Custom Change that removes the registered view model from the plugin.xml .
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	private final class ChangeExtension extends Change {
+		@Override
+		public Change perform(IProgressMonitor pm) throws CoreException {
+
+			try {
+				final String pluginString = ContributionUtil.parseIFile(pluginXml).get();
+				final String viewPath = viewModel.getProjectRelativePath().toString();
+
+				final String cleanExtensionString = pluginString
+					.replaceAll(String.format(ONE_LINE_FILE, viewPath), EMPTY_STRING)
+					.replaceAll(String.format(MULTI_LINE_FILE, viewPath), EMPTY_STRING);
+
+				final String cleanPlugin = EMPTY_XMI_EXTENSIONPOINT.matcher(cleanExtensionString)
+					.replaceAll(EMPTY_STRING);
+				final Matcher matcher = EMPTY_PLUGIN_PATTERN.matcher(cleanPlugin);
+				boolean removePluginXml = false;
+				if (!matcher.find()) {
+					final FileWriter out = new FileWriter(pluginXml.getRawLocation().makeAbsolute().toFile());
+					out.write(String.valueOf(cleanPlugin));
+					out.close();
+				} else {
+					pluginXml.delete(true, pm);
+					removePluginXml = true;
+				}
+				boolean removeFolder = false;
+				if (viewModel.getParent().members().length == 0) {
+					viewModel.getParent().delete(true, pm);
+					removeFolder = true;
+				}
+				final IFile buildProperties = viewModel.getProject().getFile("build.properties"); //$NON-NLS-1$
+				final String buildPropertiesString = ContributionUtil.parseIFile(buildProperties).get();
+				String cleanedProperties = null;
+				if (removePluginXml || removeFolder) {
+					if (removePluginXml) {
+						cleanedProperties = buildPropertiesString
+							.replaceAll(REMOVE_PLUGIN_XML, EMPTY_STRING);
+					}
+					if (removeFolder) {
+						cleanedProperties = (cleanedProperties != null ? cleanedProperties : buildPropertiesString)
+							.replaceAll(
+								String.format(REMOVE_FOLDER,
+									viewModel.getParent().getProjectRelativePath().toString()),
+								EMPTY_STRING);
+					}
+				}
+				{
+					cleanedProperties = (cleanedProperties != null ? cleanedProperties : buildPropertiesString)
+						.replaceAll(
+							String.format(REMOVE_VIEW, viewModel.getProjectRelativePath().toString()),
+							EMPTY_STRING);
+				}
+
+				cleanedProperties = cleanedProperties.replaceAll(CLEAN_PLUGIN_XML, EMPTY_STRING);
+				final FileWriter out = new FileWriter(buildProperties.getRawLocation().makeAbsolute().toFile());
+				out.write(String.valueOf(cleanedProperties));
+				out.flush();
+				out.close();
+
+				viewModel.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
+
+			} catch (final IOException ex) {
+				throw new CoreException(
+					new Status(IStatus.ERROR, "org.eclipse.emf.ecp.view.model.editor", ex.getMessage(), ex)); //$NON-NLS-1$
+			}
+
+			return null;
+		}
+
+		@Override
+		public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, OperationCanceledException {
+			return RefactoringStatus.create(Status.OK_STATUS);
+		}
+
+		@Override
+		public void initializeValidationData(IProgressMonitor pm) {
+		}
+
+		@Override
+		public String getName() {
+			return "Remove view model from plugin.xml"; //$NON-NLS-1$
+		}
+
+		@Override
+		public Object getModifiedElement() {
+			return null;
+		}
+	}
+
+	private IFile viewModel;
+	private IFile pluginXml;
+
+	/**
+	 * Default constructor.
+	 */
+	public ViewModelDeleteParticipant() {
+	}
+
+	@Override
+	protected boolean initialize(Object element) {
+		viewModel = Adapters.adapt(element, IFile.class);
+		pluginXml = viewModel.getProject().getFile("plugin.xml"); //$NON-NLS-1$
+
+		return viewModel != null && pluginXml.exists();
+	}
+
+	@Override
+	public String getName() {
+		return "Clean up after View Model Removal"; //$NON-NLS-1$
+	}
+
+	@Override
+	public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context)
+		throws OperationCanceledException {
+		final ResourceChangeChecker resourceChecker = context.getChecker(ResourceChangeChecker.class);
+		if (resourceChecker != null) {
+			try {
+				final RefactoringStatus result = resourceChecker.check(pm);
+				final String projectInfo = "Remove view model from plugin.xml"; //$NON-NLS-1$
+				result.addInfo(projectInfo);
+				return result;
+			} catch (final CoreException e) {
+				return RefactoringStatus.create(e.getStatus());
+			}
+		}
+
+		return new RefactoringStatus();
+	}
+
+	@Override
+	public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
+		return new ChangeExtension();
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.model.generator/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.generator/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.generator/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.generator/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b317ee4..2564b0f 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Generator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.generator;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.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 e290f0b..0a439df 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.common/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.preview.common/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9d59880..169358c 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,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Preview Common
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.common;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.model.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
 Import-Package: org.eclipse.core.resources;version="0.0.0",
- org.eclipse.emf.ecp.ui.view.swt;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.locale;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.22.0,1.23.0)",
  org.eclipse.jface;version="0.0.0",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
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 1288704..e0588eb 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cf58d65..396ce24 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,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Preview View
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.e3;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.internal.preview.actions;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.internal.preview.e3.views;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.internal.preview;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.internal.preview.actions;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.internal.preview.e3.views;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.editor.viewmodel;bundle-version="[1.21.0,1.22.0)";resolution:=optional,
- org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)";resolution:=optional
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.editor.viewmodel;bundle-version="[1.22.0,1.23.0)";resolution:=optional,
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)";resolution:=optional
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
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 f26c098..19bab67 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7c549e7..0b3d7c9 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.provider.xmi;version="1.21.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls"
+Export-Package: org.eclipse.emf.ecp.internal.view.model.provider.xmi;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.provider.xmi;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.migrator;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 a3a3d84..c706824 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ExtensionXMIViewModelProvider.java b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ExtensionXMIViewModelProvider.java
index 0cad7ee..136b73a 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ExtensionXMIViewModelProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ExtensionXMIViewModelProvider.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 2.0
@@ -10,12 +10,16 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.provider.xmi;
 
+import java.util.Collection;
+
 import org.eclipse.emf.ecore.EObject;
 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.provider.IFilteredViewProvider;
 import org.eclipse.emf.ecp.view.spi.provider.IViewProvider;
 
 /**
@@ -24,19 +28,21 @@
  * @author Jonas Helming
  *
  */
-public class ExtensionXMIViewModelProvider implements IViewProvider {
+public class ExtensionXMIViewModelProvider implements IFilteredViewProvider {
 
 	@Override
-	public double canProvideViewModel(EObject eObject, VViewModelProperties properties) {
-		if (ViewModelFileExtensionsManager.getInstance().hasViewModelFor(eObject, properties)) {
+	public double canProvideViewModel(EObject eObject, VViewModelProperties properties,
+		Collection<String> requiredKeys) {
+
+		if (ViewModelFileExtensionsManager.getInstance().hasViewModelFor(eObject, properties, requiredKeys)) {
 			return 2d;
 		}
 		return NOT_APPLICABLE;
 	}
 
 	@Override
-	public VView provideViewModel(EObject eObject, VViewModelProperties properties) {
-		return ViewModelFileExtensionsManager.getInstance().createView(eObject, properties);
+	public VView provideViewModel(EObject eObject, VViewModelProperties properties, Collection<String> requiredKeys) {
+		return ViewModelFileExtensionsManager.getInstance().createView(eObject, properties, requiredKeys);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager.java b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager.java
index 80a42a6..b95b2ae 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.provider.xmi;
 
@@ -20,6 +21,9 @@
 import java.io.OutputStream;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -349,19 +353,21 @@
 	/**
 	 * @param eObject the object to be rendered
 	 * @param properties the {@link VViewModelProperties properties}
+	 * @param requiredKeys the filter keys that are required to match
 	 * @return if there is a xmi file registered containing a view model for the given type
 	 */
-	public boolean hasViewModelFor(EObject eObject, VViewModelProperties properties) {
-		return !findBestFittingViews(eObject, properties).isEmpty();
+	public boolean hasViewModelFor(EObject eObject, VViewModelProperties properties, Collection<String> requiredKeys) {
+		return !findBestFittingViews(eObject, properties, requiredKeys).isEmpty();
 	}
 
 	/**
 	 * @param eObject The {@link EObject} to create a view for
 	 * @param properties the {@link VViewModelProperties properties}
+	 * @param requiredKeys the filter keys that are required to match
 	 * @return a view model for the given eObject
 	 */
-	public VView createView(EObject eObject, VViewModelProperties properties) {
-		final Map<VView, ExtensionDescription> bestFitting = findBestFittingViews(eObject, properties);
+	public VView createView(EObject eObject, VViewModelProperties properties, Collection<String> requiredKeys) {
+		final Map<VView, ExtensionDescription> bestFitting = findBestFittingViews(eObject, properties, requiredKeys);
 
 		if (bestFitting.isEmpty()) {
 			final ReportService reportService = Activator.getReportService();
@@ -401,7 +407,8 @@
 	private static final int FILTER_NOT_MATCHED = Integer.MIN_VALUE;
 
 	private Map<VView, ExtensionDescription> findBestFittingViews(EObject eObject,
-		final VViewModelProperties properties) {
+		final VViewModelProperties properties, Collection<String> requiredKeys) {
+
 		final Map<VView, Set<ExtensionDescription>> viewMap = new LinkedHashMap<VView, Set<ExtensionDescription>>();
 		final Set<EClass> allEClass = new LinkedHashSet<EClass>();
 		allEClass.add(eObject.eClass());
@@ -421,23 +428,7 @@
 		}
 		for (final VView view : viewMap.keySet()) {
 			for (final ExtensionDescription description : viewMap.get(view)) {
-				int currentFittingKeyValues = 0;
-				final Map<String, String> viewFilter = description.getKeyValuPairs();
-				for (final String viewFilterKey : viewFilter.keySet()) {
-					if (propertiesToCheck.containsKey(viewFilterKey)) {
-						final Object contextValue = propertiesToCheck.get(viewFilterKey);
-						final String viewFilterValue = viewFilter.get(viewFilterKey);
-						if (contextValue.toString().equalsIgnoreCase(viewFilterValue)) {
-							currentFittingKeyValues++;
-						} else {
-							currentFittingKeyValues = FILTER_NOT_MATCHED;
-							break;
-						}
-					} else {
-						currentFittingKeyValues = FILTER_NOT_MATCHED;
-						break;
-					}
-				}
+				final int currentFittingKeyValues = computeFit(description, propertiesToCheck, requiredKeys);
 				if (currentFittingKeyValues == FILTER_NOT_MATCHED) {
 					continue;
 				}
@@ -453,6 +444,37 @@
 		return getViewMap(bestFitting, eObject.eClass());
 	}
 
+	private int computeFit(final ExtensionDescription description, VViewModelProperties properties,
+		Collection<String> requiredKeys) {
+
+		int currentFittingKeyValues = 0;
+		final Set<String> unmatchedKeys = requiredKeys == null || requiredKeys.isEmpty()
+			? Collections.emptySet()
+			: new HashSet<>(requiredKeys);
+
+		final Map<String, String> viewFilter = description.getKeyValuPairs();
+		for (final String viewFilterKey : viewFilter.keySet()) {
+			if (properties.containsKey(viewFilterKey)) {
+				final Object contextValue = properties.get(viewFilterKey);
+				final String viewFilterValue = viewFilter.get(viewFilterKey);
+				if (contextValue.toString().equalsIgnoreCase(viewFilterValue)) {
+					currentFittingKeyValues++;
+					unmatchedKeys.remove(viewFilterKey);
+				} else {
+					currentFittingKeyValues = FILTER_NOT_MATCHED;
+					break;
+				}
+			} else {
+				currentFittingKeyValues = FILTER_NOT_MATCHED;
+				break;
+			}
+		}
+		if (!unmatchedKeys.isEmpty()) {
+			currentFittingKeyValues = FILTER_NOT_MATCHED;
+		}
+		return currentFittingKeyValues;
+	}
+
 	private Map<VView, ExtensionDescription> getViewMap(Map<VView, ExtensionDescription> fullMap, EClass viewModelFor) {
 		final Map<VView, ExtensionDescription> viewMap = new LinkedHashMap<VView, ExtensionDescription>();
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 441c299..e7f3958 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.model.reporting;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.model.internal.reporting;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.model.reporting;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.model.util;version="1.22.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
 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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.model/pom.xml
index 68564fd..1384e26 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7892517..eecfc8f 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.rule.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 fdefce9..0b5005b 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4f09112..3e79a8e 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.view.spi.rule.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.rule.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.rule.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.rule.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.rule.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)"
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 46e0305..66953f4 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.rule/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.rule/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 98bdb0a..1ef8f47 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,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.rule;version="1.21.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.rule;version="1.22.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.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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,
@@ -25,7 +25,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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.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 39c250f..99444cc 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

   

diff --git a/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/IterateConditionService.java b/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/IterateConditionService.java
index 2b3430a..bbb6f02 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/IterateConditionService.java
+++ b/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/IterateConditionService.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2017 Christian W. Damus and others.
+ * Copyright (c) 2017-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 2.0
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.rule.ConditionService;
 import org.eclipse.emf.ecp.view.spi.rule.model.Condition;
 import org.eclipse.emf.ecp.view.spi.rule.model.IterateCondition;
@@ -95,6 +96,14 @@
 	}
 
 	@Override
+	public Set<VDomainModelReference> getDomainModelReferences(IterateCondition condition) {
+		final Set<VDomainModelReference> domainModelReferences = super.getDomainModelReferences(condition);
+		// Also need to add our reference
+		domainModelReferences.add(condition.getItemReference());
+		return domainModelReferences;
+	}
+
+	@Override
 	public Set<UniqueSetting> getConditionSettings(IterateCondition condition, EObject domainModel) {
 		final Set<UniqueSetting> result = super.getConditionSettings(condition, domainModel);
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b3f602f..a0139e8 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.section.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.section.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 7d37c85..3e76772 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.section.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.section.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c608deb..b224db2 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.section.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.section.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.section.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.section.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.section.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.section.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 9ee569e..9fbd990 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.project b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.project
index bc1f1f0..3bb8a5f 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.project
@@ -41,6 +41,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7f390a1..13bda5d 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,27 +2,27 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.section.ui.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.section.swt;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.section.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.section.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.section.ui.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.section.swt;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.section.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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",
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 4e62656..2f4ced6 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 53af88a..3b10163 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 be164ea..ba4cbe2 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 37a91d2..ab1f9ef 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -11,7 +11,7 @@
  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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 16b5175..67cd348 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/.project b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.project
index fccec9e..c781755 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.project
@@ -41,6 +41,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 46cf921..694bfe7 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,27 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.ui.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.stack.ui.swt;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.stack.ui.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.stack.ui.swt;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.custom;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0",
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 6caada5..061ccb2 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/internal/stack/ui/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/Activator.java
index 5179d51..c8c9c33 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/Activator.java
@@ -16,9 +16,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
 
 /**
  * The activator class controls the plug-in life cycle.
@@ -31,8 +29,6 @@
 	/** The shared instance. */
 	private static Activator plugin;
 
-	private ServiceReference<ReportService> reportServiceReference;
-
 	/**
 	 * The constructor.
 	 */
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.project b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.project
index e56867a..32393e0 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.project
+++ b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.project
@@ -6,11 +6,6 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
 			<name>org.eclipse.pde.ManifestBuilder</name>
 			<arguments>
 			</arguments>
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f0a221e..5246ed1 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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 a83d51a..3154b1f 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.swt.layout/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.swt.layout/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.swt.layout/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.swt.layout/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f20bf71..cb1bb72 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default LayoutProvider
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.swt.layout;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.swt.internal.layout;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.view.swt.internal.layout;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.swt.internal.layout.ECPLayoutProvider.xml
 Bundle-ActivationPolicy: lazy
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 e37310e..80cef81 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 39f315a..b5043cd 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,17 +2,17 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.table.celleditor.rcp;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.table.celleditor.rcp;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.table.celleditor.rcp;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.celleditor.rcp;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.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
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 2a24357..877cf2f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/src/org/eclipse/emf/ecp/view/internal/table/celleditor/rcp/BooleanCellEditor.java b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/src/org/eclipse/emf/ecp/view/internal/table/celleditor/rcp/BooleanCellEditor.java
index 58c979e..85e9c7b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/src/org/eclipse/emf/ecp/view/internal/table/celleditor/rcp/BooleanCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/src/org/eclipse/emf/ecp/view/internal/table/celleditor/rcp/BooleanCellEditor.java
@@ -22,7 +22,10 @@
 import org.eclipse.core.databinding.observable.Diffs;
 import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.emf.databinding.EMFUpdateValueStrategy;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -31,7 +34,6 @@
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.table.celleditor.rcp.NativeWidgetHelper;
 import org.eclipse.emf.ecp.view.spi.table.celleditor.rcp.NativeWidgetHelper.CheckBoxState;
-import org.eclipse.jface.databinding.swt.WidgetValueProperty;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
 import org.eclipse.jface.viewers.ICellEditorListener;
@@ -70,7 +72,7 @@
 	 */
 	@Override
 	public IValueProperty getValueProperty() {
-		return new WidgetValueProperty() {
+		return new SimpleValueProperty() {
 
 			@Override
 			public Object getValueType() {
@@ -91,6 +93,11 @@
 			public IObservableValue observe(Object source) {
 				return new BooleanCellEditorObservableValue();
 			}
+
+			@Override
+			public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+				return null;
+			}
 		};
 	}
 
@@ -237,7 +244,7 @@
 	@Override
 	public void updateCell(ViewerCell cell, Object value) {
 		if (!"".equals(cell.getText())) { //$NON-NLS-1$
-		cell.setText(""); //$NON-NLS-1$
+			cell.setText(""); //$NON-NLS-1$
 		}
 		final Image image = getImage(value);
 		if (cell.getImage() != image) {
@@ -248,7 +255,7 @@
 
 	/**
 	 * Sets the copy text marker for the given {@code cell} and {@code value}.
-	 * 
+	 *
 	 * @param cell the {@link ViewerCell}.
 	 * @param value the {@link Object} value.
 	 */
diff --git a/bundles/org.eclipse.emf.ecp.view.table.columnservice/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.columnservice/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.columnservice/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.columnservice/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8810e5f..86b97a5 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.test"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.table.columnservice;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.test"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 8fc151e..dfcc47f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.edapt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.edapt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.edapt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.edapt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5062033..7931f37 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,9 +2,9 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.table.edapt._140to150;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.table.edapt._140to150;version="1.22.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.edapt.migration;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.edapt
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 d6529c2..80497d9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5af856e..5071bfc 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.table.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 0907f6b..5ab3fce 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/.project b/bundles/org.eclipse.emf.ecp.view.table.model/.project
index 04bc43c..46bac5f 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/.project
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/.project
@@ -46,6 +46,5 @@
 		<nature>org.eclipse.pde.PluginNature</nature>

 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>

 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>

-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>

 	</natures>

 </projectDescription>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bcb4a43..31b8b20 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,27 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.table.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.table.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.table.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.generator;version="1.22.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.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.table.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.table.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.common.spi.asserts;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
  org.osgi.service.component.annotations;version="1.2.0"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.model
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 75da9ac..34764d2 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.checkstyle b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.checkstyle
new file mode 100644
index 0000000..e1150f8
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.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.emf.ecp.view.table.ui.nebula.grid.rap/.classpath b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.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.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.project b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.project
new file mode 100644
index 0000000..3ca38ea
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap</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>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..7a7c95a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.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.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..c522e1f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1

+line.separator=\n

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,419 @@
+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=warning

+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning

+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error

+org.eclipse.jdt.core.compiler.problem.nullReference=warning

+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error

+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning

+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning

+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore

+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore

+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore

+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning

+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning

+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning

+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore

+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning

+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore

+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore

+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled

+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning

+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled

+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled

+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore

+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning

+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled

+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning

+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore

+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning

+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning

+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore

+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled

+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled

+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

+org.eclipse.jdt.core.compiler.problem.unusedImport=warning

+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning

+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning

+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore

+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore

+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled

+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled

+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled

+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning

+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore

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

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

+org.eclipse.jdt.core.compiler.source=1.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.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..dcf51f5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1

+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8553926
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.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.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..270fde6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010

+eclipse.preferences.version=1

+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..926c039
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,98 @@
+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_ANNOTATION=Ignore

+INVALID_JAVADOC_TAG=Warning

+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error

+LEAK_EXTEND=Warning

+LEAK_FIELD_DECL=Warning

+LEAK_IMPLEMENT=Warning

+LEAK_METHOD_PARAM=Warning

+LEAK_METHOD_RETURN_TYPE=Warning

+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error

+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error

+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error

+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error

+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error

+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error

+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error

+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error

+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error

+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error

+MISSING_EE_DESCRIPTIONS=Error

+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error

+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error

+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error

+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error

+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error

+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error

+UNUSED_PROBLEM_FILTERS=Ignore

+automatically_removed_unused_problem_filters=Disabled

+eclipse.preferences.version=1

+incompatible_api_component_version=Error

+incompatible_api_component_version_include_major_without_breaking_change=Disabled

+incompatible_api_component_version_include_minor_without_api_change=Disabled

+invalid_since_tag_version=Error

+malformed_since_tag=Error

+missing_since_tag=Error

+report_api_breakage_when_major_version_incremented=Disabled

+report_resolution_errors_api_component=Warning

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..b7e72d0
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1

+pluginProject.extensions=false

+resolve.requirebundle=false

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..3249d11
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1

+compilers.f.unresolved-plugins=1

+compilers.incompatible-environment=1

+compilers.p.build=1

+compilers.p.build.bin.includes=1

+compilers.p.build.encodings=2

+compilers.p.build.java.compiler=2

+compilers.p.build.java.compliance=1

+compilers.p.build.missing.output=2

+compilers.p.build.output.library=1

+compilers.p.build.source.library=1

+compilers.p.build.src.includes=1

+compilers.p.deprecated=1

+compilers.p.discouraged-class=1

+compilers.p.internal=1

+compilers.p.missing-packages=1

+compilers.p.missing-version-export-package=1

+compilers.p.missing-version-import-package=1

+compilers.p.missing-version-require-bundle=1

+compilers.p.no-required-att=0

+compilers.p.not-externalized-att=2

+compilers.p.unknown-attribute=1

+compilers.p.unknown-class=1

+compilers.p.unknown-element=1

+compilers.p.unknown-identifier=1

+compilers.p.unknown-resource=1

+compilers.p.unresolved-ex-points=0

+compilers.p.unresolved-import=0

+compilers.s.create-docs=false

+compilers.s.doc-folder=doc

+compilers.s.open-tags=1

+eclipse.preferences.version=1

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5902be5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/META-INF/MANIFEST.MF
@@ -0,0 +1,61 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Grid Table Rap
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.rap.nebula.widgets.grid;bundle-version="3.4.0"
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.emf.ecp.view.spi.table.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.table.swt;version="1.16.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.editsupport;version="1.16.0",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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.rap.rwt;version="3.4.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
+Service-Component: OSGI-INF/RAPGridControlSWTRendererService.xml
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.ecp.view.internal.table.ui.nebula.grid.rap;version="1.17.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap;version="1.17.0",
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.menu;version="1.17.0",
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.messages;version="1.17.0"
+Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/OSGI-INF/RAPGridControlSWTRendererService.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/OSGI-INF/RAPGridControlSWTRendererService.xml
new file mode 100644
index 0000000..80952fe
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/OSGI-INF/RAPGridControlSWTRendererService.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="RAPGridControlSWTRendererService">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.table.ui.nebula.grid.rap.RAPGridControlSWTRendererService"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/build.properties b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/build.properties
new file mode 100644
index 0000000..c58ea21
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/pom.xml
new file mode 100644
index 0000000..2e7245b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/pom.xml
@@ -0,0 +1,18 @@
+<?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"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.22.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.rap</artifactId>
+  <version>1.22.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/internal/table/ui/nebula/grid/rap/RAPGridControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/internal/table/ui/nebula/grid/rap/RAPGridControlSWTRendererService.java
new file mode 100644
index 0000000..3ff8417
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/internal/table/ui/nebula/grid/rap/RAPGridControlSWTRendererService.java
@@ -0,0 +1,45 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.internal.table.ui.nebula.grid.rap;
+
+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.table.model.DetailEditing;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.RAPGridControlSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+import org.osgi.service.component.annotations.Component;
+
+/** Renderer service for the {@link RAPGridControlSWTRenderer}. */
+@Component(name = "RAPGridControlSWTRendererService")
+public class RAPGridControlSWTRendererService implements EMFFormsDIRendererService<VTableControl> {
+
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VTableControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (DetailEditing.NONE == VTableControl.class.cast(vElement).getDetailEditing()) {
+			return 200;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	@Override
+	public Class<? extends AbstractSWTRenderer<VTableControl>> getRendererClass() {
+		return RAPGridControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerComposite.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerComposite.java
new file mode 100644
index 0000000..476ba53
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerComposite.java
@@ -0,0 +1,421 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Alexandra Buzila - initial API and implementation
+ * Johannes Faltermeier - initial API and implementation
+ * Lucas Koehler - adaptions to RAP limitations
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.menu.GridColumnAction;
+import org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.messages.Messages;
+import org.eclipse.emfforms.spi.swt.table.AbstractTableViewerComposite;
+import org.eclipse.emfforms.spi.swt.table.ColumnConfiguration;
+import org.eclipse.emfforms.spi.swt.table.TableConfiguration;
+import org.eclipse.emfforms.spi.swt.table.TableControl;
+import org.eclipse.emfforms.spi.swt.table.TableViewerComparator;
+import org.eclipse.emfforms.spi.swt.table.TableViewerSWTCustomization;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.layout.AbstractColumnLayout;
+import org.eclipse.jface.viewers.ViewerColumn;
+import org.eclipse.nebula.jface.gridviewer.GridColumnLayout;
+import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
+import org.eclipse.nebula.jface.gridviewer.GridViewerColumn;
+import org.eclipse.nebula.widgets.grid.Grid;
+import org.eclipse.nebula.widgets.grid.GridColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * A {@link Composite} containing a {@link GridTableViewer}.
+ *
+ * @author Jonas Helming
+ *
+ */
+public class GridTableViewerComposite extends AbstractTableViewerComposite<GridTableViewer> {
+
+	private static final long serialVersionUID = 2569328255801045004L;
+	private GridTableViewer gridTableViewer;
+	private TableViewerComparator comparator;
+	private List<Integer> sortableColumns;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param parent the parent {@link Composite}
+	 * @param style the style bits
+	 * @param inputObject the input object
+	 * @param customization the {@link TableViewerSWTCustomization}
+	 * @param title the title
+	 * @param tooltip the tooltip
+	 */
+	@SuppressWarnings("unchecked")
+	public GridTableViewerComposite(Composite parent, int style, Object inputObject,
+		TableViewerSWTCustomization customization,
+		IObservableValue title, IObservableValue tooltip) {
+		super(parent, style, inputObject, customization, title, tooltip);
+	}
+
+	@Override
+	public GridTableViewer getTableViewer() {
+		return gridTableViewer;
+	}
+
+	@Override
+	protected GridTableViewer createTableViewer(TableViewerSWTCustomization<GridTableViewer> customization,
+		Composite viewerComposite) {
+		gridTableViewer = customization.createTableViewer(viewerComposite);
+		gridTableViewer.getGrid().setAutoHeight(true);
+		return gridTableViewer;
+	}
+
+	@Override
+	protected void configureContextMenu(GridTableViewer tableViewer) {
+		final MenuManager menuMgr = new MenuManager();
+		menuMgr.setRemoveAllWhenShown(true);
+
+		if (getEnabledFeatures().contains(TableConfiguration.FEATURE_COLUMN_HIDE_SHOW)) {
+			menuMgr.addMenuListener(new ColumnHideShowMenuListener());
+		}
+
+		// TODO usable when the nebula grid RAP implementation supports header controls
+		// if (getEnabledFeatures().contains(TableConfiguration.FEATURE_COLUMN_FILTER)) {
+		// menuMgr.addMenuListener(new ColumnFilterMenuListener());
+		// }
+
+		final Menu menu = menuMgr.createContextMenu(tableViewer.getControl());
+		tableViewer.getControl().setMenu(menu);
+	}
+
+	@Override
+	protected void configureViewerFilters(GridTableViewer tableViewer) {
+		// TODO usable when the nebula grid RAP implementation supports header controls
+		// if (getEnabledFeatures().contains(TableConfiguration.FEATURE_COLUMN_FILTER)) {
+		// tableViewer.addFilter(new GridColumnFilterViewerFilter(this, tableViewer));
+		// }
+	}
+
+	@Override
+	protected AbstractColumnLayout createLayout(Composite viewerComposite) {
+		final GridColumnLayout layout = new GridColumnLayout();
+		viewerComposite.setLayout(layout);
+		return layout;
+	}
+
+	@Override
+	public Widget[] getColumns() {
+		return gridTableViewer.getGrid().getColumns();
+	}
+
+	@Override
+	public void addColumnListener(ControlListener columnlistener) {
+		for (int i = 0; i < gridTableViewer.getGrid().getColumns().length; i++) {
+			final GridColumn gridColumn = gridTableViewer.getGrid().getColumns()[i];
+			gridColumn.addControlListener(columnlistener);
+		}
+	}
+
+	@Override
+	public TableControl getTableControl() {
+		return new TableControl() {
+
+			@Override
+			public boolean isDisposed() {
+				return getTableViewer().getGrid().isDisposed();
+			}
+
+			@Override
+			public int getItemHeight() {
+				return getTableViewer().getGrid().getItemHeight();
+			}
+
+			@Override
+			public boolean getHeaderVisible() {
+				return getTableViewer().getGrid().getHeaderVisible();
+			}
+
+			@Override
+			public int getHeaderHeight() {
+				return getTableViewer().getGrid().getHeaderHeight();
+			}
+
+			@Override
+			public int getItemCount() {
+				return getTableViewer().getGrid().getItemCount();
+			}
+		};
+	}
+
+	@Override
+	protected ViewerColumn createColumn(final ColumnConfiguration config,
+		EMFDataBindingContext emfDataBindingContext, final GridTableViewer tableViewer) {
+
+		final GridViewerColumn column = new GridViewerColumnBuilder(config)
+			.withDatabinding(emfDataBindingContext)
+			.build(tableViewer);
+
+		column.getColumn().setWordWrap(true);
+
+		return column;
+	}
+
+	@Override
+	public void setComparator(final TableViewerComparator comparator, List<Integer> sortableColumns) {
+		this.comparator = comparator;
+		this.sortableColumns = sortableColumns;
+		for (int i = 0; i < getTableViewer().getGrid().getColumns().length; i++) {
+			if (!sortableColumns.contains(i)) {
+				continue;
+			}
+			final int j = i;
+			final GridColumn tableColumn = getTableViewer().getGrid().getColumns()[i];
+			final SelectionAdapter selectionAdapter = new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					setCompareColumn(j);
+				}
+			};
+			tableColumn.addSelectionListener(selectionAdapter);
+		}
+
+	}
+
+	private ColumnConfiguration getCurrentColumnConfig() {
+
+		final Grid grid = getTableViewer().getGrid();
+		final Point cursorLocation = grid.getDisplay().getCursorLocation();
+		final GridColumn column = grid.getColumn(grid.toControl(cursorLocation));
+
+		if (column == null) {
+			return null;
+		}
+		return getColumnConfiguration(column);
+	}
+
+	/**
+	 * Column hide/show menu listener.
+	 *
+	 * @author Mat Hansen
+	 *
+	 */
+	private class ColumnHideShowMenuListener implements IMenuListener {
+
+		@Override
+		public void menuAboutToShow(IMenuManager manager) {
+			final ColumnConfiguration columnConfiguration = getCurrentColumnConfig();
+			if (columnConfiguration == null) {
+				return;
+			}
+			manager.add(new GridColumnAction(GridTableViewerComposite.this,
+				Messages.GridTableViewerComposite_hideColumnAction) {
+				@Override
+				public void run() {
+					columnConfiguration.visible().setValue(Boolean.FALSE);
+				}
+
+				@Override
+				public boolean isEnabled() {
+					if (!super.isEnabled()) {
+						return false;
+					}
+					return columnConfiguration.getEnabledFeatures()
+						.contains(ColumnConfiguration.FEATURE_COLUMN_HIDE_SHOW);
+				}
+			});
+			manager.add(new GridColumnAction(GridTableViewerComposite.this,
+				Messages.GridTableViewerComposite_showAllColumnsAction) {
+				@Override
+				public void run() {
+					for (final Widget widget : getColumns()) {
+						getGridTableViewer().getColumnConfiguration(widget).visible().setValue(Boolean.TRUE);
+					}
+				}
+
+				@Override
+				public boolean isEnabled() {
+					return getEnabledFeatures().contains(TableConfiguration.FEATURE_COLUMN_HIDE_SHOW)
+						&& hasHiddenColumns();
+				}
+
+				boolean hasHiddenColumns() {
+					for (final Widget widget : getColumns()) {
+						if (!getGridTableViewer().getColumnConfiguration(widget).visible().getValue()) {
+							return true;
+						}
+					}
+					return false;
+				}
+			});
+		}
+
+	}
+
+	@Override
+	public void setCompareColumn(int columnIndex) {
+		// Reset other columns to avoid left over sort indicators
+		for (final int index : sortableColumns) {
+			final GridColumn column = getTableViewer().getGrid().getColumns()[index];
+			if (index != columnIndex && column.getSort() != SWT.NONE) {
+				column.setSort(SWT.NONE);
+			}
+		}
+		comparator.setColumn(columnIndex);
+		final GridColumn tableColumn = getTableViewer().getGrid().getColumns()[columnIndex];
+		tableColumn.setSort(comparator.getDirection());
+		gridTableViewer.refresh();
+	}
+
+	// TODO usable when the nebula grid RAP implementation supports header controls
+	// /**
+	// * Column hide/show menu listener.
+	// *
+	// * @author Mat Hansen
+	// *
+	// */
+	// private class ColumnFilterMenuListener implements IMenuListener {
+	//
+	// @Override
+	// public void menuAboutToShow(IMenuManager manager) {
+	// final ColumnConfiguration columnConfiguration = getCurrentColumnConfig();
+	// if (columnConfiguration == null) {
+	// return;
+	// }
+	// manager.add(new GridColumnAction(GridTableViewerComposite.this,
+	// Messages.GridTableViewerComposite_toggleFilterControlsAction) {
+	// @Override
+	// public void run() {
+	// for (final Widget widget : getColumns()) {
+	// PropertyHelper.toggle(
+	// getGridTableViewer().getColumnConfiguration(widget).showFilterControl());
+	// }
+	//
+	// // getGrid().recalculateHeader();
+	// }
+	//
+	// @Override
+	// public boolean isEnabled() {
+	// if (!super.isEnabled()) {
+	// return false;
+	// }
+	// return columnConfiguration.getEnabledFeatures()
+	// .contains(ColumnConfiguration.FEATURE_COLUMN_FILTER);
+	// }
+	// });
+	// }
+	//
+	// }
+
+	// TODO usable when the nebula grid RAP implementation supports header controls
+	// /**
+	// * Viewer filter for column filter support.
+	// *
+	// * @author Mat Hansen
+	// *
+	// */
+	// private class GridColumnFilterViewerFilter extends ViewerFilter {
+	//
+	// private final GridTableViewerComposite tableViewerComposite;
+	// private final GridTableViewer tableViewer;
+	// private final Grid grid;
+	//
+	// /**
+	// * The Constructor.
+	// *
+	// * @param tableViewerComposite the Grid table viewer composite.
+	// * @param tableViewer the Grid table viewer.
+	// */
+	// GridColumnFilterViewerFilter(
+	// GridTableViewerComposite tableViewerComposite,
+	// GridTableViewer tableViewer) {
+	// super();
+	// this.tableViewerComposite = tableViewerComposite;
+	// this.tableViewer = tableViewer;
+	// grid = tableViewer.getGrid();
+	// }
+	//
+	// @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);
+	//
+	// try {
+	//
+	// dummyItem.setData(element);
+	// final GridViewerRow viewerRow = (GridViewerRow) ((CustomGridTableViewer) tableViewer)
+	// .getViewerRowFromItem(dummyItem);
+	//
+	// for (final Widget widget : getColumns()) {
+	//
+	// final ColumnConfiguration config = tableViewerComposite.getColumnConfiguration(widget);
+	//
+	// final Object filter = config.matchFilter().getValue();
+	// if (filter == null || String.valueOf(filter).isEmpty()) {
+	// continue;
+	// }
+	//
+	// final GridColumn column = (GridColumn) widget;
+	// final int columnIndex = tableViewer.getGrid().indexOf(column);
+	//
+	// final ViewerCell cell = viewerRow.getCell(columnIndex);
+	// final CellLabelProvider labelProvider = tableViewer.getLabelProvider(columnIndex);
+	// labelProvider.update(cell);
+	//
+	// if (!matchesColumnFilter(cell.getText(), filter)) {
+	// return false;
+	// }
+	//
+	// }
+	//
+	// } finally {
+	// dummyItem.dispose();
+	// grid.setRedraw(true);
+	// }
+	//
+	// return true;
+	// }
+	//
+	// /**
+	// * Test whether the given value/filter combination matches.
+	// *
+	// * @param value the value to test
+	// * @param filterValue the filter value
+	// * @return true if the value matches the filter value
+	// */
+	// protected boolean matchesColumnFilter(Object value, Object filterValue) {
+	//
+	// if (filterValue == null) {
+	// return false;
+	// }
+	//
+	// return String.valueOf(value).toLowerCase()
+	// .contains(String.valueOf(filterValue).toLowerCase());
+	// }
+	//
+	// }
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerFactory.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerFactory.java
new file mode 100644
index 0000000..10e425a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerFactory.java
@@ -0,0 +1,82 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap;
+
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emfforms.spi.swt.table.TableViewerFactory;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * A factory to create {@link GridTableViewerComposite GridTableViewerComposites}.
+ *
+ * @author Johannes Faltermeier
+ *
+ */
+public final class GridTableViewerFactory extends TableViewerFactory {
+
+	/** Default constructor. */
+	public GridTableViewerFactory() {
+		super();
+	}
+
+	/**
+	 * Use this method if you want to customize any behavior of the {@link GridTableViewerComposite}. This will return
+	 * a {@link GridTableViewerSWTBuilder} which allows to customize certain aspects.
+	 *
+	 * @param composite the parent composite
+	 * @param swtStyleBits the style bits which will be passed to the {@link GridTableViewerComposite}
+	 * @param input the input object
+	 * @return the builder
+	 */
+	public static GridTableViewerSWTBuilder fillDefaults(Composite composite, int swtStyleBits, Object input) {
+		return new GridTableViewerSWTBuilder(composite, swtStyleBits, input,
+			Observables.constantObservableValue("", String.class), //$NON-NLS-1$
+			Observables.constantObservableValue("", String.class)); //$NON-NLS-1$
+	}
+
+	/**
+	 * Use this method if you want to customize any behavior of the {@link GridTableViewerComposite}. This will return
+	 * a {@link GridTableViewerSWTBuilder} which allows to customize certain aspects.
+	 *
+	 * @param composite the parent composite
+	 * @param swtStyleBits the style bits which will be passed to the {@link GridTableViewerComposite}
+	 * @param input the input object
+	 * @param title the title
+	 * @param tooltip the tooltip
+	 * @return the builder
+	 */
+	public static GridTableViewerSWTBuilder fillDefaults(Composite composite, int swtStyleBits, Object input,
+		IObservableValue title, IObservableValue tooltip) {
+		return new GridTableViewerSWTBuilder(composite, swtStyleBits, input, title, tooltip);
+	}
+
+	/**
+	 * Use this method if you want to customize any behavior of the {@link GridTableViewerComposite}. This will return
+	 * a {@link GridTableViewerSWTBuilder} which allows to customize certain aspects.
+	 *
+	 * @param composite the parent composite
+	 * @param swtStyleBits the style bits which will be passed to the {@link GridTableViewerComposite}
+	 * @param input the input object
+	 * @param title the title
+	 * @param tooltip the tooltip
+	 * @return the builder
+	 */
+	public static GridTableViewerSWTBuilder fillDefaults(Composite composite, int swtStyleBits, Object input,
+		String title, String tooltip) {
+		return new GridTableViewerSWTBuilder(composite, swtStyleBits, input,
+			Observables.constantObservableValue(title, String.class),
+			Observables.constantObservableValue(tooltip, String.class));
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerSWTBuilder.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerSWTBuilder.java
new file mode 100644
index 0000000..e4ee88d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridTableViewerSWTBuilder.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * jonas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emfforms.spi.swt.table.TableViewerSWTBuilder;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author Jonas Helming
+ *
+ */
+public class GridTableViewerSWTBuilder extends TableViewerSWTBuilder {
+
+	/**
+	 * Contructs a new instance.
+	 *
+	 * @param composite the parent composite
+	 * @param swtStyleBits the style to apply
+	 * @param input the input object
+	 * @param title the title of the table viewer
+	 * @param tooltip the tooltip
+	 */
+	public GridTableViewerSWTBuilder(Composite composite, int swtStyleBits, Object input,
+		IObservableValue title,
+		IObservableValue tooltip) {
+		super(composite, swtStyleBits, input, title, tooltip);
+	}
+
+	/**
+	 * Call this method after all desired customizations have been passed to the builder. The will create a new
+	 * {@link GridTableViewerComposite} with the desired customizations.
+	 *
+	 * @return the {@link GridTableViewerComposite}
+	 */
+	@Override
+	public GridTableViewerComposite build() {
+		return new GridTableViewerComposite(getComposite(), getSwtStyleBits(), getInput(), getCustomization(),
+			getTitle(), getTooltip());
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridViewerColumnBuilder.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridViewerColumnBuilder.java
new file mode 100644
index 0000000..9f083a2
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/GridViewerColumnBuilder.java
@@ -0,0 +1,122 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * jonas - initial API and implementation
+ * Lucas Koehler - RAP adaptions
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap;
+
+import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.common.Property;
+import org.eclipse.emfforms.common.Property.ChangeListener;
+import org.eclipse.emfforms.spi.swt.table.AbstractTableViewerColumnBuilder;
+import org.eclipse.emfforms.spi.swt.table.ColumnConfiguration;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
+import org.eclipse.nebula.jface.gridviewer.GridViewerColumn;
+import org.eclipse.nebula.widgets.grid.GridColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ControlEditor;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * Nebula Grid viewer configuration helper class.
+ *
+ * @author Mat Hansen <mhansen@eclipsesource.com>
+ *
+ */
+public class GridViewerColumnBuilder extends AbstractTableViewerColumnBuilder<GridTableViewer, GridViewerColumn> {
+
+	/**
+	 * The constructor.
+	 *
+	 * @param config the {@link ColumnConfiguration}
+	 */
+	public GridViewerColumnBuilder(ColumnConfiguration config) {
+		super(config);
+	}
+
+	@Override
+	public GridViewerColumn createViewerColumn(GridTableViewer tableViewer) {
+		return new GridViewerColumn(tableViewer, getConfig().getStyleBits());
+	}
+
+	@Override
+	protected void configure(GridTableViewer tableViewer, GridViewerColumn viewerColumn) {
+		super.configure(tableViewer, viewerColumn);
+
+		// Nebula Grid supports a few more things
+		configureHideShow(tableViewer, viewerColumn);
+	}
+
+	@Override
+	protected Item getTableColumn(GridViewerColumn viewerColumn) {
+		return viewerColumn.getColumn();
+	}
+
+	@Override
+	protected void configureViewerColumn(GridViewerColumn viewerColumn) {
+		final GridColumn column = viewerColumn.getColumn();
+
+		column.setResizeable(getConfig().isResizeable());
+		column.setMoveable(getConfig().isMoveable());
+		column.setVisible(getConfig().visible().getValue());
+		// column.getColumn().setWidth(width);
+	}
+
+	@Override
+	protected void configureEditingSupport(GridViewerColumn viewerColumn, GridTableViewer tableViewer) {
+		final Optional<EditingSupport> editingSupport = getConfig().createEditingSupport(tableViewer);
+		if (editingSupport.isPresent()) {
+			viewerColumn.setEditingSupport(editingSupport.get());
+		}
+	}
+
+	/**
+	 * Configure hide/show columns toggle.
+	 *
+	 * @param tableViewer the table viewer
+	 * @param viewerColumn the viewer column to configure
+	 */
+	protected void configureHideShow(final GridTableViewer tableViewer, final GridViewerColumn viewerColumn) {
+
+		getConfig().visible().addChangeListener(new ChangeListener<Boolean>() {
+			@Override
+			public void valueChanged(Property<Boolean> property, Boolean oldValue, Boolean newValue) {
+				getConfig().matchFilter().resetToDefault();
+
+				final GridColumn column = viewerColumn.getColumn();
+				final Listener hideShowListener = extractShowListener(viewerColumn.getColumn());
+				if (hideShowListener != null) {
+					column.removeListener(SWT.Show, hideShowListener);
+					column.removeListener(SWT.Hide, hideShowListener);
+				}
+				column.setVisible(newValue);
+				if (hideShowListener != null) {
+					column.addListener(SWT.Show, hideShowListener);
+					column.addListener(SWT.Hide, hideShowListener);
+				}
+			}
+		});
+
+	}
+
+	private static Listener extractShowListener(final GridColumn column) {
+		for (final Listener listener : column.getListeners(SWT.Show)) {
+			if (listener.getClass().getEnclosingClass() != null
+				&& ControlEditor.class.isAssignableFrom(listener.getClass().getEnclosingClass())) {
+				return listener;
+			}
+		}
+		return null;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/RAPGridControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/RAPGridControlSWTRenderer.java
new file mode 100644
index 0000000..4f09274
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/RAPGridControlSWTRenderer.java
@@ -0,0 +1,314 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap;
+
+import java.util.Arrays;
+
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+import org.eclipse.emf.ecp.view.template.style.fontProperties.model.VTFontPropertiesStyleProperty;
+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;
+import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.eclipse.emfforms.spi.swt.table.TableControl;
+import org.eclipse.emfforms.spi.swt.table.TableViewerCompositeBuilder;
+import org.eclipse.emfforms.spi.swt.table.TableViewerCreator;
+import org.eclipse.emfforms.spi.swt.table.TableViewerSWTBuilder;
+import org.eclipse.emfforms.spi.swt.table.action.TableActionBar;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.viewers.AbstractTableViewer;
+import org.eclipse.jface.viewers.ColumnViewerEditor;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
+import org.eclipse.jface.viewers.ViewerRow;
+import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
+import org.eclipse.nebula.jface.gridviewer.GridViewerEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * @author Lucas Koehler
+ * @since 1.17
+ *
+ */
+public class RAPGridControlSWTRenderer extends TableControlSWTRenderer {
+
+	private final EStructuralFeatureValueConverterService converterService;
+	private final EMFFormsLocalizationService localizationService;
+
+	/**
+	 * Custom Nebula Grid table viewer to expose getViewerRowFromItem() method.
+	 *
+	 * @author Mat Hansen
+	 *
+	 */
+	public class CustomGridTableViewer extends GridTableViewer {
+
+		/**
+		 * Creates a grid viewer on a newly-created grid control under the given
+		 * parent. The grid control is created using the given SWT style bits. The
+		 * viewer has no input, no content provider, a default label provider, no
+		 * sorter, and no filters.
+		 *
+		 * @param parent
+		 *            the parent control
+		 * @param style
+		 *            the SWT style bits used to create the grid.
+		 */
+		public CustomGridTableViewer(Composite parent, int style) {
+			super(parent, style);
+		}
+
+		// make method public
+		@Override
+		public ViewerRow getViewerRowFromItem(Widget item) {
+			return super.getViewerRowFromItem(item);
+		}
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabindingEMF}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param reportService The {@link ReportService}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param imageRegistryService The {@link ImageRegistryService}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
+	 * @param converterService the {@link EStructuralFeatureValueConverterService}
+	 * @param localizationService the {@link EMFFormsLocalizationService}
+	 * @since 1.11
+	 */
+	@Inject
+	// CHECKSTYLE.OFF: ParameterNumber
+	public RAPGridControlSWTRenderer(VTableControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabindingEMF emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, ImageRegistryService imageRegistryService,
+		EMFFormsEditSupport emfFormsEditSupport, EStructuralFeatureValueConverterService converterService,
+		EMFFormsLocalizationService localizationService) {
+		// CHECKSTYLE.ON: ParameterNumber
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			imageRegistryService, emfFormsEditSupport, localizationService);
+		this.converterService = converterService;
+		this.localizationService = localizationService;
+	}
+
+	/**
+	 * {@link TableViewerCreator} for the table control swt renderer. It will create a GridTableViewer with the expected
+	 * custom variant data and the correct style properties as defined in the template model.
+	 *
+	 */
+	protected class GridTableControlSWTRendererTableViewerCreator implements TableViewerCreator<GridTableViewer> {
+
+		@Override
+		public GridTableViewer createTableViewer(Composite parent) {
+
+			final GridTableViewer tableViewer = new CustomGridTableViewer(parent,
+				SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
+			tableViewer.getGrid().setData(CUSTOM_VARIANT, TABLE_CUSTOM_VARIANT);
+			tableViewer.getGrid().setHeaderVisible(true);
+			tableViewer.getGrid().setLinesVisible(true);
+			tableViewer.getGrid().setFooterVisible(false);
+
+			/* Set background color */
+			final VTBackgroundStyleProperty backgroundStyleProperty = getBackgroundStyleProperty();
+			if (backgroundStyleProperty.getColor() != null) {
+				tableViewer.getGrid().setBackground(getSWTColor(backgroundStyleProperty.getColor()));
+			}
+
+			/* Set foreground color */
+			final VTFontPropertiesStyleProperty fontPropertiesStyleProperty = getFontPropertiesStyleProperty();
+			if (fontPropertiesStyleProperty.getColorHEX() != null) {
+				tableViewer.getGrid()
+					.setForeground(getSWTColor(fontPropertiesStyleProperty.getColorHEX()));
+			}
+
+			tableViewer.getGrid().setData(FIXED_COLUMNS, new Integer(1));
+
+			/* manage editing support activation */
+			createTableViewerEditor(tableViewer);
+
+			return tableViewer;
+		}
+
+		/**
+		 * This method creates and initialises a {@link GridViewerEditor} for the given {@link GridTableViewer}.
+		 *
+		 * @param gridTableViewer the table viewer
+		 */
+		protected void createTableViewerEditor(final GridTableViewer gridTableViewer) {
+			final ColumnViewerEditorActivationStrategy actSupport = new GridColumnViewerEditorActivationStrategy(
+				gridTableViewer);
+			actSupport.setEnableEditorActivationWithKeyboard(true);
+			GridViewerEditor.create(
+				gridTableViewer,
+				actSupport,
+				ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
+					| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
+		}
+	}
+
+	@Override
+	protected TableViewerCreator<GridTableViewer> getTableViewerCreator() {
+		return new GridTableControlSWTRendererTableViewerCreator();
+	}
+
+	@Override
+	// CHECKSTYLE.OFF: ParameterNumber
+	protected TableViewerSWTBuilder createTableViewerSWTBuilder(Composite parent, IObservableList list,
+		IObservableValue labelText, IObservableValue labelTooltipText, TableViewerCompositeBuilder compositeBuilder,
+		ObservableListContentProvider cp, ECPTableViewerComparator comparator,
+		TableActionBar<? extends AbstractTableViewer> actionBar) {
+		// CHECKSTYLE.ON: ParameterNumber
+		return GridTableViewerFactory.fillDefaults(parent, SWT.NONE, list, labelText, labelTooltipText)
+			.customizeCompositeStructure(compositeBuilder)
+			.customizeActionBar(actionBar)
+			.customizeTableViewerCreation(getTableViewerCreator())
+			.customizeContentProvider(cp)
+			.customizeComparator(comparator)
+			.showHideColumns(true)
+			.columnSubstringFilter(true);
+
+	}
+
+	@Override
+	protected int getSelectionIndex() {
+		return ((GridTableViewer) getTableViewer()).getGrid().getSelectionIndex();
+	}
+
+	@Override
+	protected Item[] getColumns() {
+		return ((GridTableViewer) getTableViewer()).getGrid().getColumns();
+	}
+
+	@Override
+	protected ScrollBar getHorizontalBar() {
+		return ((GridTableViewer) getTableViewer()).getGrid().getHorizontalBar();
+	}
+
+	@Override
+	protected ScrollBar getVerticalBar() {
+		return ((GridTableViewer) getTableViewer()).getGrid().getVerticalBar();
+	}
+
+	@Override
+	protected int computeRequiredHeight(Integer visibleLines) {
+		if (getTableViewer() == null || getTableViewerComposite() == null) {
+			return SWT.DEFAULT;
+		}
+		final TableControl table = getTableViewerComposite().getTableControl();
+		if (table == null) {
+			return SWT.DEFAULT;
+		}
+		if (table.isDisposed()) {
+			return SWT.DEFAULT;
+		}
+		final int itemHeight = table.getItemHeight() + 1;
+		// show one empty row if table does not contain any items or visibleLines < 1
+		int itemCount;
+		if (visibleLines != null) {
+			itemCount = Math.max(visibleLines, 1);
+		} else {
+			itemCount = Math.max(table.getItemCount(), 1);
+		}
+		final int headerHeight = table.getHeaderVisible() ? table.getHeaderHeight() : 0;
+
+		final int tableHeight = itemHeight * itemCount + headerHeight;
+		return tableHeight;
+	}
+
+	/**
+	 *
+	 * @return the {@link EStructuralFeatureValueConverterService}
+	 */
+	protected EStructuralFeatureValueConverterService getConverterService() {
+		return converterService;
+	}
+
+	/**
+	 *
+	 * @return the {@link EMFFormsLocalizationService}
+	 */
+	protected EMFFormsLocalizationService getLocalizationService() {
+		return localizationService;
+	}
+
+	/**
+	 * EditorActivationStrategy for GridColumns.
+	 *
+	 * @author Stefan Dirix
+	 */
+	private class GridColumnViewerEditorActivationStrategy extends ColumnViewerEditorActivationStrategy {
+
+		private final GridTableViewer gridTableViewer;
+
+		/**
+		 * Constructor.
+		 *
+		 * @param viewer the {@link GridTableViewer}.
+		 */
+		GridColumnViewerEditorActivationStrategy(GridTableViewer gridTableViewer) {
+			super(gridTableViewer);
+			this.gridTableViewer = gridTableViewer;
+		}
+
+		@Override
+		protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
+			if (event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
+				|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
+				|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC) {
+				return true;
+			}
+			if (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
+				&& gridTableViewer.isCellEditorActive()) {
+				// TODO Does not work in RAP
+				// gridTableViewer.applyEditorValue();
+			}
+			if (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED) {
+				for (final int keyCode : Arrays.asList(SWT.CTRL, SWT.ALT, SWT.SHIFT)) {
+					if ((event.keyCode & keyCode) != 0 || (event.stateMask & keyCode) != 0) {
+						return false;
+					}
+				}
+				return !isDoNotEnterEditorCode(event.keyCode);
+			}
+			return false;
+		}
+
+		private boolean isDoNotEnterEditorCode(int keyCode) {
+			// BEGIN COMPLEX CODE
+			return keyCode == SWT.ARROW_UP || keyCode == SWT.ARROW_DOWN
+				|| keyCode == SWT.ARROW_LEFT || keyCode == SWT.ARROW_RIGHT
+				|| keyCode == SWT.TAB || keyCode == SWT.DEL;
+			// END COMPLEX CODE
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/menu/GridAction.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/menu/GridAction.java
new file mode 100644
index 0000000..d2be6f2
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/menu/GridAction.java
@@ -0,0 +1,67 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Mat Hansen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.menu;
+
+import org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.GridTableViewerComposite;
+import org.eclipse.emfforms.spi.swt.table.AbstractTableViewerComposite;
+import org.eclipse.jface.action.Action;
+import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
+import org.eclipse.nebula.widgets.grid.Grid;
+
+/**
+ * Helper class for Nebula Grid context menu actions.
+ *
+ * @author Mat Hansen <mhansen@eclipsesource.com>
+ *
+ */
+class GridAction extends Action {
+
+	private final GridTableViewerComposite gridTableViewerComposite;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param gridTableViewerComposite the {@link GridTableViewerComposite}
+	 * @param actionLabel the label text for the menu action
+	 *
+	 */
+	GridAction(GridTableViewerComposite gridTableViewerComposite, String actionLabel) {
+		this.gridTableViewerComposite = gridTableViewerComposite;
+		setText(actionLabel);
+	}
+
+	/**
+	 * Returns the current grid instance.
+	 *
+	 * @return the {@link Grid}
+	 */
+	public Grid getGrid() {
+		return gridTableViewerComposite.getTableViewer().getGrid();
+	}
+
+	/**
+	 * Returns the table viewer instance.
+	 *
+	 * @return the table viewer
+	 */
+	public AbstractTableViewerComposite<GridTableViewer> getGridTableViewer() {
+		return gridTableViewerComposite;
+	}
+
+	@Override
+	public boolean isEnabled() {
+		return getGrid() != null;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/menu/GridColumnAction.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/menu/GridColumnAction.java
new file mode 100644
index 0000000..cd6f396
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/menu/GridColumnAction.java
@@ -0,0 +1,59 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Mat Hansen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.menu;
+
+import org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.GridTableViewerComposite;
+import org.eclipse.emfforms.spi.swt.table.ColumnConfiguration;
+import org.eclipse.nebula.widgets.grid.GridColumn;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Helper class for Nebula Grid column-based context menu actions.
+ *
+ * @author Mat Hansen <mhansen@eclipsesource.com>
+ *
+ */
+public class GridColumnAction extends GridAction {
+
+	/**
+	 * The constructor.
+	 *
+	 * @param gridTableViewerComposite the {@link GridTableViewerComposite}
+	 * @param actionLabel the label text for the menu action
+	 *
+	 */
+	public GridColumnAction(GridTableViewerComposite gridTableViewerComposite, String actionLabel) {
+		super(gridTableViewerComposite, actionLabel);
+	}
+
+	@Override
+	public boolean isEnabled() {
+		if (!super.isEnabled()) {
+			return false;
+		}
+
+		final Display currentDisplay = getGrid().getDisplay();
+		final Point cursorLocation = currentDisplay.getCursorLocation();
+		final GridColumn column = getGrid().getColumn(getGrid().toControl(cursorLocation));
+
+		if (column == null) {
+			return false;
+		}
+		final ColumnConfiguration columnConfig = getGridTableViewer().getColumnConfiguration(column);
+
+		return columnConfig != null;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/messages/Messages.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/messages/Messages.java
new file mode 100644
index 0000000..a3dbd0b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/messages/Messages.java
@@ -0,0 +1,35 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Mat Hansen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author Mat Hansen
+ * @generated
+ *
+ */
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.view.spi.table.nebula.grid.rap.messages.messages"; //$NON-NLS-1$
+	public static String GridTableViewerComposite_hideColumnAction;
+	public static String GridTableViewerComposite_showAllColumnsAction;
+	public static String GridTableViewerComposite_toggleFilterControlsAction;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/messages/messages.properties b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/messages/messages.properties
new file mode 100644
index 0000000..4cef176
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/rap/messages/messages.properties
@@ -0,0 +1,3 @@
+GridTableViewerComposite_hideColumnAction=Hide column
+GridTableViewerComposite_showAllColumnsAction=Show all columns
+GridTableViewerComposite_toggleFilterControlsAction=Toggle filter controls
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/.settings/org.eclipse.pde.api.tools.prefs
index 926c039..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,98 +1,104 @@
-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_ANNOTATION=Ignore

-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

+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+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_FIELD=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_DEFAULT_METHOD=Ignore
+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_ANNOTATION=Warning
+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
+changed_execution_env=Error
+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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.emf.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 9590679..3515055 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,36 +2,38 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid.menu;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid.messages;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)"
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.core.runtime;version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecp.view.spi.table.model;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.spi.table.swt;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.localization;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core.di;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.spi.table.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.table.swt;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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",
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 74af428..116702e 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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/internal/table/nebula/grid/CustomSelectionColorCellRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/CustomSelectionColorCellRenderer.java
index a53a232..0c267e5 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/CustomSelectionColorCellRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/CustomSelectionColorCellRenderer.java
@@ -35,7 +35,6 @@
 import org.eclipse.nebula.widgets.grid.IInternalWidget;
 import org.eclipse.nebula.widgets.grid.internal.BranchRenderer;
 import org.eclipse.nebula.widgets.grid.internal.CheckBoxRenderer;
-import org.eclipse.nebula.widgets.grid.internal.TextUtils;
 import org.eclipse.nebula.widgets.grid.internal.ToggleRenderer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
@@ -212,7 +211,7 @@
 		}
 
 		if (!isWordWrap()) {
-			final String text = TextUtils.getShortString(gc, item.getText(getColumn()), width);
+			final String text = TextUtils.getShortStr(gc, item.getText(getColumn()), width);
 
 			if (getAlignment() == SWT.RIGHT) {
 				final int len = gc.stringExtent(text).x;
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/TextUtils.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/TextUtils.java
new file mode 100644
index 0000000..d5cd803
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/TextUtils.java
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Johannes Faltermeier - Copied when updating from Nebula 2.1 to 2.2
+ ******************************************************************************/
+// REUSED CLASS
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation 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:
+ * chris.gross@us.ibm.com - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.nebula.grid;
+
+import org.eclipse.swt.graphics.GC;
+
+/**
+ * Utility class to provide common operations on strings not supported by the
+ * base java API.
+ *
+ * @author chris.gross@us.ibm.com
+ * @author Mirko Paturzo <mirko.paturzo@exeura.eu>
+ * @author gongguangyong@live.cn
+ *
+ *         Mirko modified the pivot calculation for improve short text provider performance.
+ *         The pivot number is calculate starting from the size of the cell provided
+ *
+ * @since 2.0.0
+ */
+public class TextUtils {
+
+	/**
+	 * Shortens a supplied string so that it fits within the area specified by
+	 * the width argument. Strings that have been shorted have an "..." attached
+	 * to the end of the string. The width is computed using the
+	 * {@link GC#textExtent(String)}.
+	 *
+	 * @param gc GC used to perform calculation.
+	 * @param t text to modify.
+	 * @param width Pixels to display.
+	 * @return shortened string that fits in area specified.
+	 * @deprecated when text is large, performance is poor, possible occur OOM exception. suggest use
+	 *             {@link #getShortStr(GC, String, int)}
+	 */
+	@Deprecated
+	public static String getShortText(GC gc, String t, int width) {
+		if (t == null) {
+			return null;
+		}
+
+		if (t.equals("")) { //$NON-NLS-1$
+			return ""; //$NON-NLS-1$
+		}
+
+		if (width >= gc.textExtent(t).x) {
+			return t;
+		}
+
+		final int w = gc.textExtent("...").x; //$NON-NLS-1$
+		String text = t;
+		final int l = text.length();
+		final int pivot = l / 2;
+		int s = pivot;
+		int e = pivot + 1;
+
+		while (s >= 0 && e < l) {
+			final String s1 = text.substring(0, s);
+			final String s2 = text.substring(e, l);
+			final int l1 = gc.textExtent(s1).x;
+			final int l2 = gc.textExtent(s2).x;
+			if (l1 + w + l2 < width) {
+				text = s1 + "..." + s2; //$NON-NLS-1$
+				break;
+			}
+			s--;
+			e++;
+		}
+
+		if (s == 0 || e == l) {
+			text = text.substring(0, 1) + "..." + text.substring(l - 1, l); //$NON-NLS-1$
+		}
+
+		return text;
+	}
+
+	/**
+	 * Shortens a supplied string so that it fits within the area specified by
+	 * the width argument. Strings that have been shorted have an "..." attached
+	 * to the end of the string. The width is computed using the
+	 * {@link GC#stringExtent(String)}.
+	 *
+	 * @param gc GC used to perform calculation.
+	 * @param t text to modify.
+	 * @param width Pixels to display.
+	 * @return shortened string that fits in area specified.
+	 * @deprecated when text is large, performance is poor, possible occur OOM exception. suggest use
+	 *             {@link #getShortStr(GC, String, int)}
+	 */
+	@Deprecated
+	public static String getShortString(GC gc, String t, int width) {
+		if (t == null) {
+			return null;
+		}
+
+		if (t.equals("")) { //$NON-NLS-1$
+			return ""; //$NON-NLS-1$
+		}
+
+		final int textWidth = gc.stringExtent(t).x;
+		if (width >= textWidth) {
+			return t;
+		}
+		String text = t;
+		final int l = text.length();
+		final int w = gc.stringExtent("...").x; //$NON-NLS-1$
+		final double midChar = (double) textWidth / l;
+		final int pivot = (int) (width / midChar / 2);
+		int s = pivot;
+		int e = l - pivot + 1;
+
+		while (s >= 0 && e < l) {
+			final String s1 = text.substring(0, s);
+			final String s2 = text.substring(e, l);
+			final int l1 = gc.stringExtent(s1).x;
+			final int l2 = gc.stringExtent(s2).x;
+			if (l1 + w + l2 < width) {
+				text = s1 + "..." + s2; //$NON-NLS-1$
+				break;
+			}
+			s--;
+			e++;
+		}
+
+		if (s == 0 || e == l) {
+			text = text.substring(0, 1) + "..." + text.substring(l - 1, l); //$NON-NLS-1$
+		}
+
+		return text;
+	}
+
+	/**
+	 * Shortens a supplied string so that it fits within the area specified by
+	 * the width argument. Strings that have been shorted have an "..." attached
+	 * to the end of the string. The width is computed using the
+	 * {@link GC#getCharWidth(char)}.
+	 *
+	 * @param gc GC used to perform calculation.
+	 * @param t text to modify.
+	 * @param width Pixels to display.
+	 * @return shortened string that fits in area specified.
+	 */
+	public static String getShortStr(GC gc, String t, int width) {
+		if (t == null || t.equals("")) { //$NON-NLS-1$
+			return t;
+		}
+
+		if (width >= gc.stringExtent(t).x) {
+			return t;
+		}
+
+		final char[] chars = t.toCharArray();
+		final int length = chars.length;
+		int left = 0;
+		int right = length - 1;
+		int calcWidth = gc.stringExtent("...").x; //$NON-NLS-1$
+
+		while (left < right) {
+			int step = gc.getCharWidth(chars[left]);
+			calcWidth += step;
+			if (calcWidth >= width) {
+				break;
+			}
+			left++;
+
+			step = gc.getCharWidth(chars[right]);
+			calcWidth += step;
+			if (calcWidth >= width) {
+				break;
+			}
+			right--;
+		}
+		if (left >= right) {
+			return t;
+		}
+		final StringBuilder builder = new StringBuilder(left + length - right + 4);
+		if (left == 0 || right == length - 1) {
+			builder.append(chars[0]).append("...").append(chars[length - 1]); //$NON-NLS-1$
+		} else {
+			final int leftLen = left == 1 ? left : left - 1;
+			builder.append(chars, 0, leftLen).append("...").append(chars, right + 1, length - right - 1); //$NON-NLS-1$
+		}
+		return builder.toString();
+	}
+
+	/**
+	 * private constructor to prevent instantiation.
+	 */
+	private TextUtils() {
+		// is empty
+	}
+}
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 124b286..79169fe 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
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
- * Christian W. Damus - bug 545686
+ * Christian W. Damus - bugs 545686, 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.nebula.grid;
 
@@ -24,17 +24,12 @@
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
-import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.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.provider.ViewProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewCache;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewManager;
 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.template.model.VTViewTemplateProvider;
@@ -53,9 +48,7 @@
 import org.eclipse.swt.custom.ScrolledComposite;
 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;
 
 /**
  * Render for a {@link org.eclipse.emf.ecp.view.spi.table.model.VTableControl VTableControl} with a detail editing
@@ -93,20 +86,23 @@
 		// CHECKSTYLE.ON: ParameterNumber
 		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
 			imageRegistryService, emfFormsEditSupport, converterService, localizationService);
+
 	}
 
-	private ECPSWTView ecpView;
 	private Composite detailPanel;
 	private Composite border;
 	private ScrolledComposite scrolledComposite;
-	private VView currentDetailView;
-	private boolean currentDetailViewOriginalReadonly;
+	private DetailViewManager detailManager;
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer#createControlComposite(org.eclipse.swt.widgets.Composite)
-	 */
+	@Override
+	protected void dispose() {
+		if (detailManager != null) {
+			detailManager.dispose();
+		}
+
+		super.dispose();
+	}
+
 	@Override
 	protected Composite createControlComposite(Composite composite) {
 
@@ -200,10 +196,24 @@
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(detailPanel);
 		scrolledComposite.setContent(detailPanel);
 
+		createDetailManager(detailPanel);
+		detailManager.cacheCurrentDetail();
+
 		return scrolledComposite;
 	}
 
 	/**
+	 * Create the detail manager in the given {@code parent}.
+	 *
+	 * @param parent the parent composite in which to present details
+	 */
+	void createDetailManager(Composite parent) {
+		detailManager = new DetailViewManager(parent, __ -> getVElement().getDetailView());
+		detailManager.setCache(DetailViewCache.createCache(getViewModelContext()));
+		detailManager.layoutDetailParent(parent);
+	}
+
+	/**
 	 * Returns the preferred height for the detail panel. This will be passed to the layout data.
 	 *
 	 * @return the height in px
@@ -231,38 +241,24 @@
 	 * @return the view
 	 */
 	protected VView getView(EObject selectedEObject) {
-		VView detailView = getVElement().getDetailView();
-		if (detailView == null) {
-
-			final VElement viewModel = getViewModelContext().getViewModel();
-			final VViewModelProperties properties = ViewModelPropertiesHelper
-				.getInhertitedPropertiesOrEmpty(viewModel);
-			detailView = ViewProviderHelper.getView(selectedEObject, properties);
-		}
-
-		currentDetailViewOriginalReadonly = detailView.isReadonly();
-		return detailView;
+		return detailManager.getDetailView(selectedEObject);
 	}
 
 	@Override
 	protected void applyEnable() {
 		super.applyEnable();
-		if (currentDetailView != null) {
-			// Set the detail view to read only if this grid is disabled or read only. Use the detail view's original
-			// read only state if this grid is enabled and not read only.
-			currentDetailView.setReadonly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-				|| currentDetailViewOriginalReadonly);
+		if (detailManager != null) {
+			detailManager
+				.setDetailReadOnly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly());
 		}
 	}
 
 	@Override
 	protected void applyReadOnly() {
 		super.applyReadOnly();
-		if (currentDetailView != null) {
-			// Set the detail view to read only if this grid is disabled or read only. Use the detail view's original
-			// read only state if this grid is enabled and not read only.
-			currentDetailView.setReadonly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-				|| currentDetailViewOriginalReadonly);
+		if (detailManager != null) {
+			detailManager
+				.setDetailReadOnly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly());
 		}
 	}
 
@@ -291,16 +287,14 @@
 	protected void handleSingleSelection(IStructuredSelection selection) {
 		// Did the selection actionally change? We may have stepped sideways in a row
 		final EObject object = (EObject) selection.getFirstElement();
-		if (ecpView != null && ecpView.getViewModelContext().getDomainModel() == object) {
+		final ECPSWTView currentDetail = detailManager.getCurrentDetail();
+		if (currentDetail != null && currentDetail.getViewModelContext().getDomainModel() == object) {
 			return;
 		}
 
 		disposeDetail();
-		final Composite compositeToRenderOn = new Composite(detailPanel, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(false).applyTo(compositeToRenderOn);
-		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(compositeToRenderOn);
 
-		renderSelectedObject(compositeToRenderOn, object);
+		renderSelectedObject((Composite) detailManager.getDetailContainer(), object);
 		border.layout(true, true);
 		scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 	}
@@ -313,27 +307,11 @@
 	 * @since 1.9
 	 */
 	protected void renderSelectedObject(final Composite composite, final EObject eObject) {
-		currentDetailView = getView(eObject);
-		if (currentDetailView == null) {
-
-			final Label label = new Label(composite, SWT.NONE);
-			label.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_RED));
-			label.setText("No Detail View found."); //$NON-NLS-1$
-
-		} else {
-			final ViewModelContext childContext = getViewModelContext().getChildContext(eObject, getVElement(),
-				currentDetailView);
-			currentDetailView = (VView) childContext.getViewModel();
-			// Set the detail view to read only if this grid is read only or disabled
-			currentDetailView.setReadonly(
-				!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-					|| currentDetailViewOriginalReadonly);
-			try {
-				ecpView = ECPSWTViewRenderer.INSTANCE.render(composite, childContext);
-			} catch (final ECPRendererException ex) {
-				getReportService().report(new RenderingFailedReport(ex));
-			}
+		if (detailManager == null) {
+			// For testability only
+			createDetailManager(composite);
 		}
+		detailManager.render(getViewModelContext(), getVElement(), eObject);
 	}
 
 	/**
@@ -353,13 +331,7 @@
 	}
 
 	private void disposeDetail() {
-		if (ecpView != null) {
-			ecpView.getSWTControl().dispose();
-			ecpView = null;
-		}
-		for (final Control control : detailPanel.getChildren()) {
-			control.dispose();
-		}
+		detailManager.cacheCurrentDetail();
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlSWTRenderer.java
index f97665c..a2e22a8 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlSWTRenderer.java
@@ -68,6 +68,7 @@
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.jface.viewers.ViewerRow;
 import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
 import org.eclipse.nebula.jface.gridviewer.GridViewerEditor;
@@ -166,7 +167,7 @@
 		private IStructuredSelection lastSelection;
 		private EObject masterObject;
 		private final PreSetValidationService preSetValidationService;
-		private boolean copyDragActive = false;
+		private boolean copyDragActive;
 		private GridItem startDragItem;
 
 		CopyDragListener() {
@@ -184,10 +185,16 @@
 			return (e.stateMask & SWT.MOD2) != 0;
 		}
 
+		private boolean canCopy() {
+			return getVElement().isEffectivelyEnabled() && !getVElement().isEffectivelyReadonly();
+		}
+
 		@Override
 		public void mouseMove(MouseEvent e) {
-			copyDragActive = isCopyModifierPressed(e) && lastSelection != null && lastSelection.size() > 1
-				&& masterObject != null;
+			if (canCopy()) {
+				copyDragActive = isCopyModifierPressed(e) && lastSelection != null && lastSelection.size() > 1
+					&& masterObject != null;
+			}
 		}
 
 		@Override
@@ -196,7 +203,7 @@
 
 		@Override
 		public void mouseDown(MouseEvent e) {
-			if (isCopyModifierPressed(e)) {
+			if (isCopyModifierPressed(e) && canCopy()) {
 				final Grid grid = (Grid) e.widget;
 				startDragItem = grid.getItem(new Point(e.x, e.y));
 			}
@@ -204,7 +211,7 @@
 
 		@Override
 		public void mouseUp(MouseEvent e) {
-			if (e.button == 1) {
+			if (e.button == 1 && canCopy()) {
 
 				final Grid grid = (Grid) e.widget;
 				final GridItem currentItem = grid.getItem(new Point(e.x, e.y));
@@ -394,7 +401,7 @@
 	// CHECKSTYLE.OFF: ParameterNumber
 	protected TableViewerSWTBuilder createTableViewerSWTBuilder(Composite parent, IObservableList list,
 		IObservableValue labelText, IObservableValue labelTooltipText, TableViewerCompositeBuilder compositeBuilder,
-		ObservableListContentProvider cp, ECPTableViewerComparator comparator,
+		ObservableListContentProvider cp, ViewerComparator comparator,
 		TableActionBar<? extends AbstractTableViewer> actionBar) {
 		// CHECKSTYLE.ON: ParameterNumber
 		return GridTableViewerFactory.fillDefaults(parent, SWT.NONE, list, labelText, labelTooltipText)
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 12a9242..957f5f7 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
@@ -88,6 +88,10 @@
 
 	private final IObservableValue<Feature> activeFilteringMode = new WritableValue<>();
 
+	private TableViewerComparator comparator;
+
+	private List<Integer> sortableColumns;
+
 	static {
 		FEATURE_MENU_LISTENERS.put(TableConfiguration.FEATURE_COLUMN_HIDE_SHOW,
 			comp -> comp.new ColumnHideShowMenuListener());
@@ -236,6 +240,8 @@
 
 	@Override
 	public void setComparator(final TableViewerComparator comparator, List<Integer> sortableColumns) {
+		this.comparator = comparator;
+		this.sortableColumns = sortableColumns;
 		for (int i = 0; i < getTableViewer().getGrid().getColumns().length; i++) {
 			if (!sortableColumns.contains(i)) {
 				continue;
@@ -245,16 +251,7 @@
 			final SelectionAdapter selectionAdapter = new SelectionAdapter() {
 				@Override
 				public void widgetSelected(SelectionEvent e) {
-					// Reset other columns to avoid left over sort indicators
-					for (final int index : sortableColumns) {
-						final GridColumn column = getTableViewer().getGrid().getColumns()[index];
-						if (index != j && column.getSort() != SWT.NONE) {
-							column.setSort(SWT.NONE);
-						}
-					}
-					comparator.setColumn(j);
-					tableColumn.setSort(comparator.getDirection());
-					gridTableViewer.refresh();
+					setCompareColumn(j);
 				}
 			};
 			tableColumn.addSelectionListener(selectionAdapter);
@@ -680,4 +677,19 @@
 		}
 	}
 
+	@Override
+	public void setCompareColumn(int columnIndex) {
+		// Reset other columns to avoid left over sort indicators
+		for (final int index : sortableColumns) {
+			final GridColumn column = getTableViewer().getGrid().getColumns()[index];
+			if (index != columnIndex && column.getSort() != SWT.NONE) {
+				column.setSort(SWT.NONE);
+			}
+		}
+		comparator.setColumn(columnIndex);
+		final GridColumn tableColumn = getTableViewer().getGrid().getColumns()[columnIndex];
+		tableColumn.setSort(comparator.getDirection());
+		gridTableViewer.refresh();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 178ba97..d52179d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.table.ui.rcp;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.table.ui.rcp;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.ui.rcp;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.ui.rcp;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.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 2a47e7c..9c05b83 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.project b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.project
index fa03727..a542933 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.project
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.project
@@ -35,6 +35,5 @@
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d06a32a..41a96a0 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.spi.view.table.ui.swt.persistedstate;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.internal.view.table.ui.swt.persistedstate;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.spi.view.table.ui.swt.persistedstate;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.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 180d91f..9b39d09 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bde9b84..2035c4f 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,37 +2,40 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.table.swt;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.table.swt.action;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.swt;version="1.22.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.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.swt;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.table.swt.action;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)"
 Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.e4.core.di.annotations;version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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",
@@ -47,8 +50,13 @@
  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.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.table.ui.swt
-Service-Component: OSGI-INF/tableDetailDialogRendererService.xml,OSGI-INF/tableDetailPanelRendererService.xml,OSGI-INF/tableRendererService.xml
+Service-Component: OSGI-INF/tableDetailDialogRendererService.xml,
+ OSGI-INF/tableDetailPanelRendererService.xml,
+ OSGI-INF/tableRendererService.xml,
+ OSGI-INF/tableRevealProvider.xml,
+ OSGI-INF/tableDetailRevealProvider.xml
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailRevealProvider.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailRevealProvider.xml
new file mode 100644
index 0000000..dd5e039
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailRevealProvider.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="tableDetailRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.table.swt.TableDetailRevealProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableRevealProvider.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableRevealProvider.xml
new file mode 100644
index 0000000..61bc1de
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableRevealProvider.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="tableRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.table.swt.TableRevealProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/plugin.xml
index a3e615f..fd3668b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/plugin.xml
@@ -6,7 +6,7 @@
          name=""
          point="org.eclipse.emf.ecp.edit.swt.cellEditor">
       <cellEditor
-            class="org.eclipse.emf.ecp.view.spi.table.swt.EnumCellEditor"
+            class="org.eclipse.emf.ecp.view.spi.table.swt.ItemProviderEnumCellEditor"
             id="org.eclipse.emf.ecp.view.table.ui.swt.enumCellEditor"
             tester="org.eclipse.emf.ecp.view.spi.table.swt.EnumCellEditorTester">
       </cellEditor>
@@ -15,6 +15,11 @@
             id="org.eclipse.emf.ecp.view.table.ui.swt.multireferenceCellEditor"
             tester="org.eclipse.emf.ecp.view.internal.table.swt.cell.MultiReferenceCellEditorTester">
       </cellEditor>
+      <cellEditor
+            class="org.eclipse.emf.ecp.view.internal.table.swt.cell.SingleReferenceCellEditor"
+            id="org.eclipse.emf.ecp.view.table.ui.swt.singleReferenceCellEditor"
+            tester="org.eclipse.emf.ecp.view.internal.table.swt.cell.SingleReferenceCellEditorTester">
+      </cellEditor>
    </extension>
    <extension
          name=""
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 19be1e4..0fa4d7b 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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/TableDetailRevealProvider.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableDetailRevealProvider.java
new file mode 100644
index 0000000..05b498d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableDetailRevealProvider.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.table.swt.TableControlSWTRenderer;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+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.reveal.DrillUp;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for {@link VTableControl}s that reveals objects presented in the details
+ * of some object in the table. This is a heuristic guess based on containment (recursively)
+ * of the object to be revealed within some object in the table. Applications are advised
+ * to provide higher bids to more reliably/appropriately reveal objects in these master-detail
+ * configurations.
+ *
+ * @since 1.22
+ */
+@Component(name = "tableDetailRevealProvider")
+public class TableDetailRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double featureBid = 11.0;
+	private final Double tableBid = 1.0;
+
+	/**
+	 * I bid on the {@code element} if it is a {@link VTableControl} that has a row
+	 * representing an {@link EObject} containing (recursively) the {@code object}
+	 * to be revealed and the table control has a detail panel.
+	 *
+	 * @param tableControl the table control to bid on
+	 * @param object the object to be revealed
+	 * @param feature provider of the optional feature being revealed
+	 * @param context the context in which the table is rendered
+	 *
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VTableControl tableControl, EObject object,
+		@Optional EStructuralFeature feature, ViewModelContext context) {
+
+		return tableControl.getDetailEditing() == DetailEditing.WITH_PANEL
+			&& containsRecursively(context, tableControl, object)
+				? feature != null
+					? featureBid // Expect that we can reveal this property of the object
+					: tableBid
+				: null;
+	}
+
+	private boolean containsRecursively(ViewModelContext context, VTableControl tableControl, EObject object) {
+		boolean result;
+
+		final IObservableList<?> list = getTableInput(context, tableControl);
+		result = list.stream().filter(EObject.class::isInstance).map(EObject.class::cast)
+			.anyMatch(ancestor -> EcoreUtil.isAncestor(ancestor, object));
+
+		return result;
+	}
+
+	private IObservableList<?> getTableInput(ViewModelContext context, VTableControl tableControl) {
+		IObservableList<?> result = Observables.emptyObservableList();
+
+		try {
+			result = context.getService(EMFFormsDatabinding.class)
+				.getObservableList(tableControl.getDomainModelReference(), context.getDomainModel());
+		} catch (final DatabindingFailedException e) {
+			// The object cannot be in this table, then
+		}
+
+		return result;
+	}
+
+	/**
+	 * Create a reveal step to drill down into the table's details.
+	 *
+	 * @param context the view model context in which to find a renderer for the table
+	 * @param helper a helper for deferred revealing
+	 * @param tableControl the table in which to drill down
+	 * @param object the object to reveal
+	 * @return the drill-down reveal step
+	 */
+	@Create
+	public RevealStep reveal(ViewModelContext context, RevealHelper helper, VTableControl tableControl,
+		EObject object) {
+
+		RevealStep result = RevealStep.fail();
+
+		if (containsRecursively(context, tableControl, object)) {
+			// It's in this table. Defer the access to the renderer because
+			// in a categorization it may not yet exist
+			result = helper.masterDetail(this, this);
+		}
+
+		return result;
+	}
+
+	@DrillUp
+	private EObject getParent(ViewModelContext context, VTableControl tableControl, EObject object) {
+		EObject result = null;
+
+		final IObservableList<?> list = getTableInput(context, tableControl);
+		result = list.stream().filter(EObject.class::isInstance).map(EObject.class::cast)
+			.filter(ancestor -> EcoreUtil.isAncestor(ancestor, object))
+			.findAny().orElse(null);
+
+		return result;
+	}
+
+	@Reveal
+	private RevealStep revealMaster(@Renderer TableControlSWTRenderer renderer, EObject masterSelection) {
+		final VTableControl tableControl = renderer.getVElement();
+		return RevealStep.reveal(tableControl, masterSelection, () -> renderer.reveal(masterSelection));
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableRevealProvider.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableRevealProvider.java
new file mode 100644
index 0000000..0fbf3af
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableRevealProvider.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+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.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for {@link VTableControl}s that reveals objects contained (as rows)
+ * in the table.
+ *
+ * @since 1.22
+ */
+@Component(name = "tableRevealProvider")
+public class TableRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double tableBid = 5.0;
+
+	/**
+	 * I bid on the {@code element} if it is a {@link VTableControl} that has a row
+	 * representing the {@code object} to be revealed.
+	 *
+	 * @param tableControl the table control to bid on
+	 * @param object the object to be revealed
+	 * @param context the context in which the table is rendered
+	 *
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VTableControl tableControl, EObject object, ViewModelContext context) {
+		return contains(context, tableControl, object) ? tableBid : null;
+	}
+
+	private boolean contains(ViewModelContext context, VTableControl tableControl, EObject object) {
+		boolean result = false;
+
+		try {
+			final IObservableList<?> list = context.getService(EMFFormsDatabinding.class)
+				.getObservableList(tableControl.getDomainModelReference(), context.getDomainModel());
+			result = list.contains(object);
+		} catch (final DatabindingFailedException e) {
+			// The object cannot be in this table, then
+		}
+
+		return result;
+	}
+
+	/**
+	 * Create a terminal reveal step to drill down into a table control.
+	 *
+	 * @param context the view model context in which to find a renderer for the table
+	 * @param helper a helper for deferred revealing
+	 * @param tableControl the table in which to drill down
+	 * @param object the object to reveal
+	 * @return the drill-down reveal step
+	 */
+	@Create
+	public RevealStep reveal(ViewModelContext context, RevealHelper helper, VTableControl tableControl,
+		EObject object) {
+
+		RevealStep result = RevealStep.fail();
+
+		if (contains(context, tableControl, object)) {
+			// It's in this table. Defer the access to the renderer because
+			// in a categorization it may not yet exist
+			result = helper.defer(this);
+		}
+
+		return result;
+	}
+
+	@Reveal
+	private RevealStep doReveal(@Renderer TableControlSWTRenderer renderer, EObject object) {
+		final VTableControl tableControl = renderer.getVElement();
+		return RevealStep.reveal(tableControl, object, () -> renderer.reveal(object));
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/MultiReferenceCellEditor.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/MultiReferenceCellEditor.java
index 23f6b05..d94ee48 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/MultiReferenceCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/MultiReferenceCellEditor.java
@@ -16,7 +16,10 @@
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
@@ -29,7 +32,6 @@
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.jface.databinding.swt.WidgetValueProperty;
 import org.eclipse.jface.viewers.AbstractTableViewer;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.swt.graphics.Image;
@@ -74,7 +76,7 @@
 
 	@Override
 	public IValueProperty getValueProperty() {
-		return new WidgetValueProperty() {
+		return new SimpleValueProperty() {
 
 			@Override
 			public Object getValueType() {
@@ -94,6 +96,11 @@
 			public IObservableValue observe(Object source) {
 				return super.observe(parent);
 			}
+
+			@Override
+			public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+				return null;
+			}
 		};
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/SingleReferenceCellEditor.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/SingleReferenceCellEditor.java
new file mode 100644
index 0000000..4ceb981
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/SingleReferenceCellEditor.java
@@ -0,0 +1,237 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.internal.table.swt.cell;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.edit.internal.swt.SWTImageHelper;
+import org.eclipse.emf.ecp.edit.spi.ReferenceService;
+import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
+import org.eclipse.emf.ecp.edit.spi.swt.table.ECPElementAwareCellEditor;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * Single reference cell editor implementation.
+ *
+ * @author Mat Hansen <mhansen@eclipsesource.com>
+ * @author Eugen Neufeld <eneufeld@eclipsesource.com>
+ * @since 1.22
+ *
+ */
+@SuppressWarnings("restriction")
+public class SingleReferenceCellEditor extends CellEditor implements ECPCellEditor, ECPElementAwareCellEditor {
+
+	private EObject rowElement;
+	private ReferenceService referenceService;
+	private EReference eReference;
+
+	private Composite composite;
+
+	private ComposedAdapterFactory composedAdapterFactory;
+	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param parent the parent composite
+	 */
+	public SingleReferenceCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/**
+	 * Alternate constructor with SWT style bits.
+	 *
+	 * @param parent the parent composite
+	 * @param style SWT style bits
+	 */
+	public SingleReferenceCellEditor(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	@Override
+	public SimpleValueProperty getValueProperty() {
+		return new SimpleValueProperty<Object, String>() {
+
+			@Override
+			public Object getValueType() {
+				return String.class;
+			}
+
+			@Override
+			protected String doGetValue(Object source) {
+				return (String) SingleReferenceCellEditor.this.doGetValue();
+			}
+
+			@Override
+			protected void doSetValue(Object source, String value) {
+				SingleReferenceCellEditor.this.doSetValue(value);
+			}
+
+			@Override
+			public IObservableValue<String> observe(Object source) {
+				if (source instanceof SingleReferenceCellEditor) {
+					return observe(composite);
+				}
+				return super.observe(source);
+			}
+
+			@Override
+			public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+				return null;
+			}
+		};
+	}
+
+	@Override
+	public void instantiate(EStructuralFeature feature, ViewModelContext viewModelContext) {
+		referenceService = viewModelContext.getService(ReferenceService.class);
+		eReference = (EReference) feature;
+	}
+
+	@Override
+	public int getStyle() {
+		return 0;
+	}
+
+	@Override
+	public String getFormatedString(Object value) {
+		if (value == null) {
+			return ""; //$NON-NLS-1$
+		}
+		return adapterFactoryItemDelegator.getText(value);
+	}
+
+	@Override
+	public Image getImage(Object value) {
+		final Object image = adapterFactoryItemDelegator.getImage(value);
+		return SWTImageHelper.getImage(image);
+	}
+
+	@Override
+	public int getColumnWidthWeight() {
+		return 0;
+	}
+
+	@Override
+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {
+		return null;
+	}
+
+	@Override
+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
+		return null;
+	}
+
+	@Override
+	public void setEditable(boolean editable) {
+	}
+
+	@Override
+	public int getMinWidth() {
+		return 100;
+	}
+
+	@Override
+	protected Control createControl(Composite parent) {
+
+		composite = new Composite(parent, SWT.NONE);
+
+		composite.addFocusListener(new FocusListener() {
+
+			private boolean focused;
+
+			@Override
+			public void focusLost(FocusEvent e) {
+			}
+
+			@Override
+			public void focusGained(FocusEvent e) {
+				if (focused) {
+					return;
+				}
+				focused = true;
+				try {
+					referenceService.addExistingModelElements(rowElement, eReference);
+				} finally {
+					deactivate();
+					focused = false;
+				}
+			}
+		});
+
+		composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+			new ReflectiveItemProviderAdapterFactory(),
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+		adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(composedAdapterFactory);
+
+		return composite;
+	}
+
+	@Override
+	public void dispose() {
+		super.dispose();
+		composedAdapterFactory.dispose();
+	}
+
+	/**
+	 * Get the {@link EditingDomain} for the given {@link EObject}.
+	 *
+	 * @param domainModel the eObject
+	 * @return the {@link EditingDomain}
+	 */
+	protected final EditingDomain getEditingDomain(EObject domainModel) {
+		return AdapterFactoryEditingDomain.getEditingDomainFor(domainModel);
+	}
+
+	@Override
+	protected Object doGetValue() {
+		return null;
+	}
+
+	@Override
+	protected void doSetFocus() {
+		composite.setFocus();
+	}
+
+	@Override
+	protected void doSetValue(Object value) {
+	}
+
+	@Override
+	public void updateRowElement(Object element) {
+		rowElement = (EObject) element;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/SingleReferenceCellEditorTester.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/SingleReferenceCellEditorTester.java
new file mode 100644
index 0000000..d758501
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/cell/SingleReferenceCellEditorTester.java
@@ -0,0 +1,46 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.internal.table.swt.cell;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditorTester;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+
+/**
+ * Single reference cell editor tester.
+ *
+ * @author Mat Hansen <mhansen@eclipsesource.com>
+ * @author Eugen Neufeld <eneufeld@eclipsesource.com>
+ * @since 1.22
+ *
+ */
+public class SingleReferenceCellEditorTester implements ECPCellEditorTester {
+
+	@Override
+	public int isApplicable(EObject eObject, EStructuralFeature eStructuralFeature, ViewModelContext viewModelContext) {
+		if (!EReference.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+
+		final EReference eReference = EReference.class.cast(eStructuralFeature);
+		if (eReference.getUpperBound() == 1) {
+			return 10;
+		}
+
+		return NOT_APPLICABLE;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditor.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditor.java
index d8042af..0523070 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditor.java
@@ -18,7 +18,10 @@
 import org.eclipse.core.databinding.observable.Diffs;
 import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
 import org.eclipse.emf.common.util.Enumerator;
 import org.eclipse.emf.databinding.EMFUpdateValueStrategy;
 import org.eclipse.emf.ecore.EAttribute;
@@ -31,7 +34,6 @@
 import org.eclipse.emf.ecp.view.internal.table.swt.FigureUtilities;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emfforms.common.Optional;
-import org.eclipse.jface.databinding.swt.WidgetValueProperty;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
@@ -52,7 +54,9 @@
  * applicable for all {@link EAttribute EAttributes} with a Single {@link EEnum} data type.
  *
  * @since 1.13
+ * @deprecated Use {@link ItemProviderEnumCellEditor} instead
  */
+@Deprecated
 public class EnumCellEditor extends ECPEnumCellEditor {
 
 	private static final String EMPTY = ""; //$NON-NLS-1$
@@ -425,7 +429,7 @@
 	 * Value property working on the combo.
 	 *
 	 */
-	private class ComboValueProperty extends WidgetValueProperty {
+	private class ComboValueProperty extends SimpleValueProperty {
 
 		@Override
 		public Object getValueType() {
@@ -447,6 +451,11 @@
 		public IObservableValue observe(Object source) {
 			return new ComboObservableValue();
 		}
+
+		@Override
+		public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+			return null;
+		}
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditorTester.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditorTester.java
index 945b843..ba33ab8 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditorTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/EnumCellEditorTester.java
@@ -22,7 +22,7 @@
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 
 /**
- * Tester for the {@link EnumCellEditor}.
+ * Tester for the {@link ItemProviderEnumCellEditor}.
  *
  * @since 1.13
  */
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/FeatureAwareComparator.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/FeatureAwareComparator.java
new file mode 100644
index 0000000..cd93873
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/FeatureAwareComparator.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * Defines a comparator which knows about the feature that the compared values are stored in. This allows to use
+ * knowledge of the feature for the comparison.
+ *
+ * @param <T> The type of the objects comparable with this comparator
+ * @author Lucas Koehler
+ * @since 1.22
+ */
+@FunctionalInterface
+public interface FeatureAwareComparator<T> {
+
+	/**
+	 * Compares two values of the given feature.
+	 *
+	 * @param feature The {@link EStructuralFeature} containing the values
+	 * @param leftValue Left value
+	 * @param rightValue Right Value
+	 * @return a negative number if the left value is less than the right value;
+	 *         the value <code>0</code> if the left value is equal to the right value;
+	 *         a positive number if the left value is greater than the right value.
+	 *         Thereby, <code>null</code> input values are treated as bigger than any other non-null value
+	 * @see java.util.Comparator#compare(Object, Object)
+	 */
+	int compare(EStructuralFeature feature, T leftValue, T rightValue);
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/ItemProviderEnumCellEditor.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/ItemProviderEnumCellEditor.java
new file mode 100644
index 0000000..594f556
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/ItemProviderEnumCellEditor.java
@@ -0,0 +1,451 @@
+/*******************************************************************************
+ * Copyright (c) 2017-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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Edgar Mueller - initial API and implementation
+ * Christian W. Damus - rework for i18n support and code cleanup
+ * Lucas Koehler - rework integration
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt;
+
+import static java.lang.Math.min;
+import static org.eclipse.emf.ecp.view.internal.table.swt.FigureUtilities.getTextWidth;
+
+import java.text.MessageFormat;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.ValueDiff;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.databinding.IEMFObservable;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.common.spi.EMFUtils;
+import org.eclipse.emf.ecp.edit.spi.swt.table.ECPEnumCellEditor;
+import org.eclipse.emf.ecp.view.internal.core.swt.MatchItemComboViewer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.eclipse.jface.databinding.viewers.ViewerProperties;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.osgi.framework.Bundle;
+
+/**
+ * Generic {@link org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor ECPCellEditor} which is
+ * applicable for all {@link EAttribute EAttributes} with a Single {@link EEnum} data type.
+ * This cell editor uses the EMF.Edit item provider to determine
+ * the model's proper choice of values for an {@link EEnum} attribute. Additionally, it filters out enum literals with
+ * are marked as <code>isInputtable=false</code> with a custom annotation.
+ *
+ * @author Christian W. Damus
+ * @author Lucas Koehler
+ * @since 1.22
+ */
+public class ItemProviderEnumCellEditor extends ECPEnumCellEditor {
+
+	/**
+	 * Template to generate the localization key for an enum value. First parameter is the EEnum's type name, second
+	 * parameter is the value's name.
+	 */
+	private static final String LOCALIZATION_KEY_TEMPLATE = "_UI_%s_%s_literal"; //$NON-NLS-1$
+
+	private EMFFormsLocalizationService l10n;
+	private MatchItemComboViewer viewer;
+	private int minWidth;
+
+	private EAttribute attribute;
+	private BundleResolver bundleResolver = BundleResolverFactory.createBundleResolver();
+	/** The edit bundle for the EEnum renderered by this cell editor. */
+	private Optional<Bundle> editBundle;
+	private Optional<EObject> source = Optional.empty();
+
+	/**
+	 * Initializes me with my parent.
+	 *
+	 * @param parent my parent composite
+	 */
+	public ItemProviderEnumCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/**
+	 * Initializes me with my parent and style.
+	 *
+	 * @param parent my parent composite
+	 * @param style my style bits
+	 */
+	public ItemProviderEnumCellEditor(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	/**
+	 * Initializes me with my parent, style, and custom {@link BundleResolver} and {@link EMFFormsLocalizationService}.
+	 *
+	 * @param parent my parent composite
+	 * @param style my style bits
+	 * @param bundleResolver custom {@link BundleResolver}
+	 * @param l10n custom {@link EMFFormsLocalizationService}
+	 */
+	public ItemProviderEnumCellEditor(Composite parent, int style, BundleResolver bundleResolver,
+		EMFFormsLocalizationService l10n) {
+		this(parent, style);
+		this.bundleResolver = bundleResolver;
+		this.l10n = l10n;
+	}
+
+	@Override
+	@SuppressWarnings("rawtypes")
+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
+		return new UpdateValueStrategy() {
+			@Override
+			public Object convert(Object value) {
+				if (!source.isPresent()) {
+					// Extract the source model element from the data binding
+					source = inferSource(databindingContext);
+				}
+
+				return value;
+			}
+		};
+	}
+
+	@Override
+	@SuppressWarnings("rawtypes")
+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {
+		return new UpdateValueStrategy();
+	}
+
+	@Override
+	protected Control createControl(Composite parent) {
+		viewer = new MatchItemComboViewer(new CCombo(parent, SWT.NONE)) {
+			@Override
+			public void onEnter() {
+				super.onEnter();
+				applySelection();
+				focusLost();
+			}
+
+			@Override
+			protected void onEscape() {
+				fireCancelEditor();
+			}
+		};
+
+		final CCombo combo = viewer.getCCombo();
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(combo);
+		viewer.setContentProvider(ArrayContentProvider.getInstance());
+		viewer.setLabelProvider(new EnumLabelProvider());
+		combo.addFocusListener(new FocusListener() {
+
+			@Override
+			public void focusLost(FocusEvent e) {
+				applySelection();
+			}
+
+			@Override
+			public void focusGained(FocusEvent e) {
+				// nothing to do here
+			}
+		});
+		return combo;
+	}
+
+	private void applySelection() {
+		final CCombo combo = viewer.getCCombo();
+		final int selection = combo.getSelectionIndex();
+		if (selection >= 0) {
+			final List<?> input = (List<?>) viewer.getInput();
+			viewer.setSelection(new StructuredSelection(input.get(selection)));
+		}
+	}
+
+	/**
+	 * Gets the proper choice of values provided by the item-provider
+	 * of the source object of our data binding for the attribute that
+	 * is bound. In addition, we remove all choices annotated by our custom annotation.
+	 * <br/>
+	 * If the property descriptor is not available or does not return any choice, the enum's literals minus the
+	 * annotated ones are returned.
+	 *
+	 * @return The available enum values, might be empty but never <code>null</code>
+	 */
+	protected List<?> getChoiceOfValues() {
+		final Collection<?> providerChoices = getPropertyDescriptor()
+			// if the propertyDescriptor is present, we have a source
+			.map(descriptor -> descriptor.getChoiceOfValues(getSource().get()))
+			.orElse(Collections.emptySet());
+
+		final List<Enumerator> result = getELiterals().stream().map(EEnumLiteral::getInstance)
+			.collect(Collectors.toList());
+		if (!providerChoices.isEmpty()) {
+			result.retainAll(providerChoices);
+		}
+
+		return result;
+	}
+
+	@Override
+	public String getFormatedString(Object value) {
+		// If the propertyDescriptor is present, then we have a source
+		return getPropertyDescriptor().map(desc -> desc.getLabelProvider(getSource().get()))
+			.map(lp -> lp.getText(value))
+			.orElseGet(() -> getLabel((Enumerator) value));
+	}
+
+	private String getLabel(Enumerator enumValue) {
+		final String typeName = attribute.getEType().getName();
+
+		return editBundle
+			.map(eB -> l10n.getString(eB, String.format(LOCALIZATION_KEY_TEMPLATE, typeName, enumValue.getName())))
+			.orElse(enumValue.getLiteral());
+	}
+
+	@Override
+	public void instantiate(EStructuralFeature feature, ViewModelContext viewModelContext) {
+		if (l10n == null) {
+			l10n = viewModelContext.getService(EMFFormsLocalizationService.class);
+		}
+		attribute = (EAttribute) feature;
+
+		try {
+			editBundle = Optional.of(bundleResolver.getEditBundle(feature.getEType()));
+		} catch (final NoBundleFoundException ex) {
+			viewModelContext.getService(ReportService.class)
+				.report(new AbstractReport(
+					MessageFormat.format(
+						"No edit bundle was found for EEnum ''{0}''. Hence, its literals cannot be internationalized for feature ''{1}''.", //$NON-NLS-1$
+						feature.getEType().getName(), feature.getName()),
+					IStatus.WARNING));
+			editBundle = Optional.empty();
+		}
+
+		final List<?> choices = getChoiceOfValues();
+		viewer.getCCombo().setVisibleItemCount(min(choices.size(), 8));
+		final Point emptyViewerSize = viewer.getCCombo().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+		minWidth = choices.stream()
+			.mapToInt(value -> getTextWidth(getFormatedString(value), viewer.getCCombo().getFont()))
+			.reduce(50, Math::max);
+		minWidth += emptyViewerSize.x;
+	}
+
+	@SuppressWarnings("rawtypes")
+	@Override
+	public IValueProperty getValueProperty() {
+		return new ComboValueProperty();
+	}
+
+	@Override
+	public void activate(ColumnViewerEditorActivationEvent actEvent) {
+		viewer.setInput(getChoiceOfValues());
+		source.ifPresent(obj -> {
+			viewer.getCCombo().setText(getFormatedString(obj.eGet(attribute)));
+		});
+
+		super.activate(actEvent);
+
+		if (actEvent.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED) {
+			final CCombo control = (CCombo) getControl();
+			if (control != null && Character.isLetterOrDigit(actEvent.character)) {
+				viewer.getBuffer().reset();
+				// key pressed is not fired during activation
+				viewer.getBuffer().addLast(actEvent.character);
+			}
+		}
+	}
+
+	@Override
+	public void deactivate() {
+		super.deactivate();
+
+		// Forget the source previously inferred
+		source = Optional.empty();
+	}
+
+	@Override
+	public int getColumnWidthWeight() {
+		return 100;
+	}
+
+	@Override
+	public int getMinWidth() {
+		return minWidth;
+	}
+
+	@Override
+	public EEnum getEEnum() {
+		return (EEnum) attribute.getEType();
+	}
+
+	@Override
+	public Image getImage(Object value) {
+		return null;
+	}
+
+	@Override
+	public void setEditable(boolean editable) {
+		viewer.getCCombo().setEnabled(editable);
+	}
+
+	// Infer the source model element from the EMF binding in the
+	// context that is for our attribute
+	private Optional<EObject> inferSource(DataBindingContext context) {
+		return ((List<?>) context.getBindings()).stream()
+			.map(Binding.class::cast)
+			.map(Binding::getModel)
+			.filter(IEMFObservable.class::isInstance).map(IEMFObservable.class::cast)
+			.filter(obs -> obs.getStructuralFeature() == attribute)
+			.map(IEMFObservable::getObserved)
+			.map(EObject.class::cast) // Can't observe a feature of a non-EObject
+			.findAny();
+	}
+
+	/**
+	 * @return The current source EObject
+	 */
+	protected Optional<EObject> getSource() {
+		return source;
+	}
+
+	/**
+	 * @return The {@link IItemPropertyDescriptor} descriptor of the current source if it is available
+	 */
+	protected Optional<IItemPropertyDescriptor> getPropertyDescriptor() {
+		return getSource().flatMap(source -> getPropertyDescriptor(source, attribute.getName()));
+	}
+
+	@Override
+	protected Object doGetValue() {
+		return viewer.getStructuredSelection().getFirstElement();
+	}
+
+	@Override
+	protected void doSetValue(Object value) {
+		viewer.setSelection(value == null ? StructuredSelection.EMPTY : new StructuredSelection(value));
+	}
+
+	@Override
+	protected void doSetFocus() {
+		final CCombo combo = viewer.getCCombo();
+		if (combo == null || combo.isDisposed()) {
+			return;
+		}
+
+		combo.setFocus();
+
+		// Remove text selection and move the cursor to the end.
+		final String text = combo.getText();
+		if (text != null) {
+			combo.setSelection(new Point(text.length(), text.length()));
+		}
+	}
+
+	/**
+	 * Obtains the EMF.Edit property descriptor for the named property of the {@code object}.
+	 *
+	 * @param object an object
+	 * @param propertyName a property to access
+	 * @return its descriptor
+	 */
+	static Optional<IItemPropertyDescriptor> getPropertyDescriptor(EObject object, String propertyName) {
+		return EMFUtils.adapt(object, IItemPropertySource.class)
+			.map(propertySource -> propertySource.getPropertyDescriptor(object, propertyName));
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Label provider for enumeration values.
+	 */
+	private class EnumLabelProvider extends LabelProvider {
+		EnumLabelProvider() {
+			super();
+		}
+
+		@Override
+		public String getText(Object element) {
+			return getFormatedString(element);
+		}
+
+	}
+
+	/**
+	 * Observable value of the combo.
+	 */
+	private class ComboValueProperty extends SimpleValueProperty<Object, Object> {
+
+		@Override
+		public Object getValueType() {
+			return CCombo.class;
+		}
+
+		@Override
+		protected Object doGetValue(Object source) {
+			return ItemProviderEnumCellEditor.this.getValue();
+		}
+
+		@Override
+		protected void doSetValue(Object source, Object value) {
+			ItemProviderEnumCellEditor.this.doSetValue(value);
+		}
+
+		@SuppressWarnings("rawtypes")
+		@Override
+		public IObservableValue observe(Object source) {
+			if (source != ItemProviderEnumCellEditor.this) {
+				return Observables.constantObservableValue(null);
+			}
+
+			return ViewerProperties.singleSelection().observe(viewer);
+		}
+
+		@Override
+		public INativePropertyListener<Object> adaptListener(
+			ISimplePropertyListener<Object, ValueDiff<? extends Object>> listener) {
+			return null;
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/LocalizedEnumeratorComparator.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/LocalizedEnumeratorComparator.java
new file mode 100644
index 0000000..1b23e00
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/LocalizedEnumeratorComparator.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt;
+
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+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.localization.EMFFormsLocalizationService;
+import org.osgi.framework.Bundle;
+
+/**
+ * Retrieves the localized labels for two {@link Enumerator} values and compares them to each other.
+ * Enumerators are localized by retrieving their literals' labels from the corresponding edit bundle by using the
+ * {@link EMFFormsLocalizationService}. Retrieved edit bundles are cached to avoid re-resolving them for every
+ * comparison.
+ *
+ * @author Lucas Koehler
+ * @since 1.22
+ *
+ */
+public class LocalizedEnumeratorComparator implements FeatureAwareComparator<Enumerator> {
+
+	/**
+	 * Template to generate the localization key for an enum value. First parameter is the EEnum's type name, second
+	 * parameter is the value's name.
+	 */
+	private static final String ENUM_KEY_TEMPLATE = "_UI_%s_%s_literal"; //$NON-NLS-1$
+
+	// use Optional to avoid trying to resolve absent edit bundles over and over again
+	private final Map<EClassifier, Optional<Bundle>> editBundles = new HashMap<>();
+	private final EMFFormsLocalizationService localizationService;
+	private final BundleResolver bundleResolver;
+	private final ReportService reportService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param localizationService The {@link EMFFormsLocalizationService} to get the localized literal labels
+	 * @param bundleResolver The {@link BundleResolver} to resolve the edit bundles
+	 * @param reportService The {@link ReportService} to report missing edit bundles
+	 */
+	public LocalizedEnumeratorComparator(EMFFormsLocalizationService localizationService, BundleResolver bundleResolver,
+		ReportService reportService) {
+		this.localizationService = localizationService;
+		this.bundleResolver = bundleResolver;
+		this.reportService = reportService;
+	}
+
+	@Override
+	public int compare(EStructuralFeature feature, Enumerator leftValue, Enumerator rightValue) {
+		if (leftValue == null) {
+			if (rightValue == null) {
+				return 0;
+			}
+			return 1;
+		} else if (rightValue == null) {
+			return -1;
+		}
+
+		final String typeName = feature.getEType().getName();
+		final Optional<Bundle> editBundle = editBundles.computeIfAbsent(feature.getEType(), key -> {
+			try {
+				return Optional.of(bundleResolver.getEditBundle(feature.getEContainingClass()));
+			} catch (final NoBundleFoundException ex) {
+				reportService
+					.report(new AbstractReport(
+						MessageFormat.format(
+							"No edit bundle was found for EEnum ''{0}''. Hence, its literals cannot be internationalized for feature ''{1}''.", //$NON-NLS-1$
+							typeName, feature.getName()),
+						IStatus.WARNING));
+			}
+			return Optional.empty();
+		});
+
+		final String leftLabel = editBundle
+			.map(eB -> localizationService.getString(eB,
+				String.format(ENUM_KEY_TEMPLATE, typeName, leftValue.getName())))
+			.orElse(leftValue.getLiteral());
+
+		final String rightLabel = editBundle
+			.map(eB -> localizationService.getString(eB,
+				String.format(ENUM_KEY_TEMPLATE, typeName, rightValue.getName())))
+			.orElse(rightValue.getLiteral());
+
+		return NumberAwareStringComparator.getInstance().compare(leftLabel, rightLabel);
+	}
+}
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 7320810..b5c80c4 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
@@ -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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
@@ -26,17 +27,11 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
-import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
-import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.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.provider.ViewProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewCache;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewManager;
 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.template.model.VTViewTemplateProvider;
@@ -54,9 +49,7 @@
 import org.eclipse.swt.custom.ScrolledComposite;
 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;
 
 /**
  * Render for a {@link org.eclipse.emf.ecp.view.spi.table.model.VTableControl VTableControl} with a detail editing
@@ -103,18 +96,20 @@
 			emfFormsEditSupport);
 	}
 
-	private ECPSWTView ecpView;
 	private Composite detailPanel;
 	private Composite border;
 	private ScrolledComposite scrolledComposite;
-	private VView currentDetailView;
-	private boolean currentDetailViewOriginalReadonly;
+	private DetailViewManager detailManager;
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer#createControlComposite(org.eclipse.swt.widgets.Composite)
-	 */
+	@Override
+	protected void dispose() {
+		if (detailManager != null) {
+			detailManager.dispose();
+		}
+
+		super.dispose();
+	}
+
 	@Override
 	protected Composite createControlComposite(Composite composite) {
 		/* border */
@@ -143,6 +138,9 @@
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(detailPanel);
 		scrolledComposite.setContent(detailPanel);
 
+		createDetailManager(detailPanel);
+		detailManager.cacheCurrentDetail();
+
 		scrolledComposite.addListener(SWT.Resize,
 			(Event event) -> scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT)));
 
@@ -150,6 +148,17 @@
 	}
 
 	/**
+	 * Create the detail manager in the given {@code parent}.
+	 *
+	 * @param parent the parent composite in which to present details
+	 */
+	void createDetailManager(Composite parent) {
+		detailManager = new DetailViewManager(parent, __ -> getVElement().getDetailView());
+		detailManager.setCache(DetailViewCache.createCache(getViewModelContext()));
+		detailManager.layoutDetailParent(parent);
+	}
+
+	/**
 	 * Returns the prefereed height for the detail panel. This will be passed to the layoutdata.
 	 *
 	 * @return the height in px
@@ -177,7 +186,7 @@
 	 */
 	@Deprecated
 	protected VView getView() {
-		IValueProperty valueProperty;
+		IValueProperty<?, ?> valueProperty;
 		try {
 			valueProperty = getEMFFormsDatabinding()
 				.getValueProperty(getVElement().getDomainModelReference(),
@@ -197,38 +206,24 @@
 	 * @return the view
 	 */
 	protected VView getView(EObject selectedEObject) {
-		VView detailView = getVElement().getDetailView();
-		if (detailView == null) {
-
-			final VElement viewModel = getViewModelContext().getViewModel();
-			final VViewModelProperties properties = ViewModelPropertiesHelper
-				.getInhertitedPropertiesOrEmpty(viewModel);
-			detailView = ViewProviderHelper.getView(selectedEObject, properties);
-		}
-
-		currentDetailViewOriginalReadonly = detailView.isReadonly();
-		return detailView;
+		return detailManager.getDetailView(selectedEObject);
 	}
 
 	@Override
 	protected void applyEnable() {
 		super.applyEnable();
-		if (currentDetailView != null) {
-			// Set the detail view to read only if this table is disabled or read only. Use the detail view's original
-			// read only state if this table is enabled and not read only.
-			currentDetailView.setReadonly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-				|| currentDetailViewOriginalReadonly);
+		if (detailManager != null) {
+			detailManager
+				.setDetailReadOnly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly());
 		}
 	}
 
 	@Override
 	protected void applyReadOnly() {
 		super.applyReadOnly();
-		if (currentDetailView != null) {
-			// Set the detail view to read only if this table is disabled or read only. Use the detail view's original
-			// read only state if this table is enabled and not read only.
-			currentDetailView.setReadonly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-				|| currentDetailViewOriginalReadonly);
+		if (detailManager != null) {
+			detailManager
+				.setDetailReadOnly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly());
 		}
 	}
 
@@ -256,12 +251,8 @@
 	 */
 	protected void handleSingleSelection(IStructuredSelection selection) {
 		disposeDetail();
-		final Composite compositeToRenderOn = new Composite(detailPanel, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(false).applyTo(compositeToRenderOn);
-		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(compositeToRenderOn);
-
 		final EObject object = (EObject) selection.getFirstElement();
-		renderSelectedObject(compositeToRenderOn, object);
+		renderSelectedObject((Composite) detailManager.getDetailContainer(), object);
 		border.layout(true, true);
 		scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 	}
@@ -274,27 +265,11 @@
 	 * @since 1.9
 	 */
 	protected void renderSelectedObject(final Composite composite, final EObject eObject) {
-		currentDetailView = getView(eObject);
-		if (currentDetailView == null) {
-
-			final Label label = new Label(composite, SWT.NONE);
-			label.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_RED));
-			label.setText("No Detail View found."); //$NON-NLS-1$
-
-		} else {
-			final ViewModelContext childContext = getViewModelContext().getChildContext(eObject, getVElement(),
-				currentDetailView);
-			currentDetailView = (VView) childContext.getViewModel();
-			// Set the detail view to read only if this table is read only or disabled
-			currentDetailView.setReadonly(
-				!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-					|| currentDetailViewOriginalReadonly);
-			try {
-				ecpView = ECPSWTViewRenderer.INSTANCE.render(composite, childContext);
-			} catch (final ECPRendererException ex) {
-				getReportService().report(new RenderingFailedReport(ex));
-			}
+		if (detailManager == null) {
+			// For testability only
+			createDetailManager(composite);
 		}
+		detailManager.render(getViewModelContext(), getVElement(), eObject);
 	}
 
 	/**
@@ -314,13 +289,7 @@
 	}
 
 	private void disposeDetail() {
-		if (ecpView != null) {
-			ecpView.getSWTControl().dispose();
-			ecpView = null;
-		}
-		for (final Control control : detailPanel.getChildren()) {
-			control.dispose();
-		}
+		detailManager.cacheCurrentDetail();
 	}
 
 	/**
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 3d97619..c2979c7 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
@@ -11,7 +11,7 @@
  * Contributors:
  * Eugen Neufeld - initial API and implementation
  * Johannes Faltermeier - refactorings
- * Christian W. Damus - bugs 544116, 544537, 545686, 530314, 547271
+ * Christian W. Damus - bugs 544116, 544537, 545686, 530314, 547271, 547787, 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
@@ -53,7 +53,9 @@
 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.common.util.Enumerator;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.EMFProperties;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
@@ -85,6 +87,7 @@
 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.model.VElement;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.provider.ECPTooltipModifierHelper;
 import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
@@ -123,6 +126,8 @@
 import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
 import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
 import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.common.sort.NumberAwareStringComparator;
@@ -133,6 +138,7 @@
 import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.emfforms.spi.swt.core.SWTDataElementIdHelper;
 import org.eclipse.emfforms.spi.swt.core.layout.EMFFormsSWTLayoutUtil;
@@ -186,6 +192,7 @@
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
@@ -272,9 +279,13 @@
 	/** The feature of the column which is currently used for sorting. */
 	private java.util.Optional<EStructuralFeature> sortColumnFeature = java.util.Optional.empty();
 	private ModelChangeListener autoSortModelChangeListener;
+	private final EMFFormsLocalizationService localizationService;
+	private final BundleResolver bundleResolver = BundleResolverFactory.createBundleResolver();
+	/** DO NOT USE DIRECTLY! Use {@link #getEnumeratorComparator()} instead. */
+	private LocalizedEnumeratorComparator enumeratorComparator;
 
 	/**
-	 * Default constructor.
+	 * Legacy constructor for backwards compatibility.
 	 *
 	 * @param vElement the view model element to be rendered
 	 * @param viewContext the view context
@@ -286,7 +297,7 @@
 	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
 	 * @since 1.8
 	 */
-	@Inject
+	@Deprecated
 	// BEGIN COMPLEX CODE
 	public TableControlSWTRenderer(
 		VTableControl vElement,
@@ -299,9 +310,42 @@
 		EMFFormsEditSupport emfFormsEditSupport) {
 		// END COMPLEX CODE
 
+		this(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			imageRegistryService, emfFormsEditSupport, viewContext.getService(EMFFormsLocalizationService.class));
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param reportService The {@link ReportService}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param imageRegistryService The {@link ImageRegistryService}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
+	 * @param localizationService The {@link EMFFormsLocalizationService}
+	 * @since 1.22
+	 */
+	@Inject
+	// BEGIN COMPLEX CODE
+	public TableControlSWTRenderer(
+		VTableControl vElement,
+		ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabindingEMF emfFormsDatabinding,
+		EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider,
+		ImageRegistryService imageRegistryService,
+		EMFFormsEditSupport emfFormsEditSupport,
+		EMFFormsLocalizationService localizationService) {
+		// END COMPLEX CODE
+
 		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
 		this.imageRegistryService = imageRegistryService;
 		this.emfFormsEditSupport = emfFormsEditSupport;
+		this.localizationService = localizationService;
 		viewModelDBC = new EMFDataBindingContext();
 	}
 
@@ -408,8 +452,8 @@
 			/* content provider */
 			final ObservableListContentProvider cp = new ObservableListContentProvider();
 
-			final ECPTableViewerComparator comparator = getVElement().isMoveUpDownDisabled()
-				? new ECPTableViewerComparator()
+			final TableControlComparator comparator = getVElement().isMoveUpDownDisabled()
+				? createTableViewerComparator()
 				: null;
 
 			/* render */
@@ -483,6 +527,16 @@
 	}
 
 	/**
+	 * Creates a TableControlComparator.
+	 *
+	 * @return TableControlComparator
+	 * @since 1.22
+	 */
+	protected TableControlComparator createTableViewerComparator() {
+		return new ECPTableViewerComparator();
+	}
+
+	/**
 	 * Create the {@link ViewerActionContext} for the table viewer.
 	 *
 	 * @return the {@link TableRendererViewerActionContext}
@@ -675,6 +729,39 @@
 	 * @param actionBar the {@link ActionBar}
 	 * @return the {@link TableViewerSWTBuilder}
 	 * @since 1.18
+	 * @deprecated Please use
+	 *             {@link #createTableViewerSWTBuilder(Composite, IObservableList, IObservableValue, IObservableValue, TableViewerCompositeBuilder, ObservableListContentProvider, ViewerComparator, TableActionBar)}
+	 *             instead
+	 */
+	@Deprecated
+	// CHECKSTYLE.OFF: ParameterNumber
+	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
+
+		return createTableViewerSWTBuilder(parent, list, labelText, labelTooltipText, compositeBuilder, cp,
+			(ViewerComparator) comparator,
+			actionBar);
+	}
+
+	/**
+	 * Creates a new {@link TableViewerSWTBuilder}.
+	 *
+	 * @param parent the parent {@link Composite}
+	 * @param list the input object
+	 * @param labelText the title
+	 * @param labelTooltipText the tooltip
+	 * @param compositeBuilder the {@link TableViewerCompositeBuilder}
+	 * @param cp the content provider
+	 * @param comparator the {@link ViewerComparator}; has no effect if move up/down
+	 *            functionality is enabled
+	 * @param actionBar the {@link ActionBar}
+	 * @return the {@link TableViewerSWTBuilder}
+	 * @since 1.22
 	 *
 	 */
 	// CHECKSTYLE.OFF: ParameterNumber
@@ -682,7 +769,7 @@
 		@SuppressWarnings("rawtypes") IObservableList list,
 		@SuppressWarnings("rawtypes") IObservableValue labelText,
 		@SuppressWarnings("rawtypes") IObservableValue labelTooltipText, TableViewerCompositeBuilder compositeBuilder,
-		ObservableListContentProvider cp, ECPTableViewerComparator comparator,
+		ObservableListContentProvider cp, ViewerComparator comparator,
 		TableActionBar<? extends AbstractTableViewer> actionBar) {
 		// CHECKSTYLE.ON: ParameterNumber
 		return TableViewerFactory.fillDefaults(parent, SWT.NONE, list, labelText, labelTooltipText)
@@ -911,7 +998,7 @@
 		}
 	}
 
-	private void setupSorting(final ECPTableViewerComparator comparator, int regularColumnsStartIndex,
+	private void setupSorting(final TableViewerComparator comparator, int regularColumnsStartIndex,
 		final AbstractTableViewerComposite<? extends AbstractTableViewer> tableViewerComposite) {
 
 		final VTTableStyleProperty tableStyleProperty = getTableStyleProperty();
@@ -945,6 +1032,18 @@
 
 	private IObservableValue<?> getLabelTextForColumn(VDomainModelReference dmrToCheck, EClass dmrRootEClass) {
 		try {
+			// See whether the view model specifies a label for the column
+			final Optional<VEnablementConfiguration> config = TableConfigurationHelper
+				.findEnablementConfiguration(getVElement(), dmrToCheck);
+			if (config.isPresent()) {
+				final String label = config.get().getLabel();
+				if (label != null && !label.isEmpty()) {
+					@SuppressWarnings("unchecked")
+					final IValueProperty<VElement, String> labelProperty = EMFProperties
+						.value(VViewPackage.Literals.ELEMENT__LABEL);
+					return labelProperty.observe(config.get());
+				}
+			}
 			return getEMFFormsLabelProvider().getDisplayName(dmrToCheck, dmrRootEClass);
 		} catch (final NoLabelFoundException e) {
 			// FIXME Expectation?
@@ -1699,7 +1798,7 @@
 	/**
 	 * Get called by the {@link ECPTableViewerComparator} in order to compare the given objects.
 	 *
-	 * @param viewer the tavle viewer
+	 * @param viewer the table viewer
 	 * @param left the first object of the comparison
 	 * @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
@@ -1713,6 +1812,7 @@
 	 *         element is greater than the second element
 	 * @since 1.8
 	 */
+	// BEGIN COMPLEX CODE
 	@SuppressWarnings("unchecked")
 	protected int compare(Viewer viewer, Object left, Object right, int direction, int propertyIndex) {
 		if (direction == 0) {
@@ -1721,6 +1821,9 @@
 
 		// We might have ignored columns at the beginning
 		propertyIndex = propertyIndex - regularColumnsStartIndex;
+		if (propertyIndex < 0) {
+			return 0;
+		}
 		int rc = 0;
 
 		final VDomainModelReference dmr = getColumnDomainModelReferences().get(propertyIndex);
@@ -1744,7 +1847,10 @@
 		} else if (rightValue == null) {
 			rc = -1;
 		} else {
-			if (!(leftValue instanceof String) && leftValue instanceof Comparable
+			if (leftValue instanceof Enumerator) {
+				final EStructuralFeature feature = leftSetting.get().getEStructuralFeature();
+				rc = getEnumeratorComparator().compare(feature, (Enumerator) leftValue, (Enumerator) rightValue);
+			} else if (!(leftValue instanceof String) && leftValue instanceof Comparable
 				&& leftValue.getClass().isInstance(rightValue)) {
 				rc = Comparable.class.cast(leftValue).compareTo(rightValue);
 			} else {
@@ -1757,6 +1863,7 @@
 		}
 		return rc;
 	}
+	// END COMPLEX CODE
 
 	@Override
 	protected void rootDomainModelChanged() throws DatabindingFailedException {
@@ -1844,6 +1951,43 @@
 	}
 
 	/**
+	 * @return The {@link FeatureAwareComparator} used to compare {@link Enumerator enum values} when sorting the table
+	 * @since 1.22
+	 */
+	protected FeatureAwareComparator<Enumerator> getEnumeratorComparator() {
+		if (enumeratorComparator == null) {
+			enumeratorComparator = new LocalizedEnumeratorComparator(localizationService, bundleResolver,
+				getReportService());
+		}
+		return enumeratorComparator;
+	}
+
+	/**
+	 * Reeveal the given {@code object} in my table.
+	 *
+	 * @param object an object to reveal
+	 * @return whether I succeeded in revealing it
+	 *
+	 * @since 1.22
+	 */
+	public boolean reveal(Object object) {
+		final AbstractTableViewer viewer = getTableViewer();
+		final IObservableList<?> list = (IObservableList<?>) viewer.getInput();
+		final boolean result = list.contains(object);
+
+		if (result) {
+			final IStructuredSelection selection = new StructuredSelection(object);
+			if (!selection.equals(viewer.getSelection())) {
+				viewer.setSelection(selection, true);
+			}
+		} else {
+			viewer.reveal(object);
+		}
+
+		return result;
+	}
+
+	/**
 	 * The {@link DNDProvider} for this renderer.
 	 *
 	 * @author Johannes Faltermeier
@@ -2430,6 +2574,16 @@
 	}
 
 	/**
+	 * This class combines the {@link ViewerComparator} with the {@link TableViewerComparator}.
+	 * This is needed to allow customizations.
+	 *
+	 * @author Eugen Neufeld
+	 * @since 1.22
+	 */
+	protected abstract class TableControlComparator extends ViewerComparator implements TableViewerComparator {
+	}
+
+	/**
 	 * The {@link ViewerComparator} for this table which allows 3 states for sort order:
 	 * none, up and down.
 	 *
@@ -2437,7 +2591,7 @@
 	 * @since 1.10
 	 *
 	 */
-	protected class ECPTableViewerComparator extends ViewerComparator implements TableViewerComparator {
+	protected class ECPTableViewerComparator extends TableControlComparator {
 		private int propertyIndex;
 		private static final int NONE = 0;
 		private int direction = NONE;
@@ -2475,10 +2629,10 @@
 			}
 			// No sorting is the same as no column being selected for sorting
 			if (direction == NONE) {
-				sortColumnFeature = java.util.Optional.empty();
+				setSortColumnFeature(null);
 			} else {
 				// columnFeatures starts at index 0 with the first regular column
-				sortColumnFeature = java.util.Optional.of(columnFeatures[propertyIndex - regularColumnsStartIndex]);
+				setSortColumnFeature(getColumnFeature(propertyIndex));
 			}
 		}
 
@@ -2499,11 +2653,11 @@
 		public void notifyChange(ModelChangeNotification notification) {
 			final int event = notification.getRawNotification().getEventType();
 			if (notification.getStructuralFeature() == tableEReference
-				&& sortColumnFeature.isPresent()
+				&& getSortColumnFeature().isPresent()
 				&& (event == Notification.ADD || event == Notification.ADD_MANY)) {
 				sortAndReveal(notification.getNewEObjects());
-			} else if (sortColumnFeature.isPresent()
-				&& notification.getStructuralFeature() == sortColumnFeature.get()) {
+			} else if (getSortColumnFeature().isPresent()
+				&& notification.getStructuralFeature() == getSortColumnFeature().get()) {
 				sortAndReveal(notification.getNotifier());
 			}
 		}
@@ -3015,4 +3169,35 @@
 			instanceName);
 	}
 
+	/**
+	 * Returns the current sort column feature.
+	 *
+	 * @return an {@link java.util.Optional} containing the feature used for sorting
+	 * @since 1.22
+	 */
+	protected java.util.Optional<EStructuralFeature> getSortColumnFeature() {
+		return sortColumnFeature;
+	}
+
+	/**
+	 * Set the column to use for sorting.
+	 *
+	 * @param sortColumnFeature an optional containing the feature to use for sorting
+	 * @since 1.22
+	 */
+	protected void setSortColumnFeature(EStructuralFeature sortColumnFeature) {
+		this.sortColumnFeature = java.util.Optional.ofNullable(sortColumnFeature);
+	}
+
+	/**
+	 * Find the feature for a specific index.
+	 *
+	 * @param propertyIndex The index to find the feature for
+	 * @return The {@link EStructuralFeature} for the provided index
+	 * @since 1.22
+	 */
+	protected EStructuralFeature getColumnFeature(int propertyIndex) {
+		return columnFeatures[propertyIndex - regularColumnsStartIndex];
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/DuplicateRowAction.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/DuplicateRowAction.java
index 0944d9a..b403ea0 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/DuplicateRowAction.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/DuplicateRowAction.java
@@ -13,15 +13,17 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt.action;
 
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emfforms.spi.swt.table.action.ViewerActionContext;
@@ -67,18 +69,19 @@
 		final EObject eObject = setting.getEObject();
 		final EStructuralFeature eStructuralFeature = setting.getEStructuralFeature();
 
-		final List<?> toDuplicate = Arrays.asList(
-			((IStructuredSelection) getTableViewer().getSelection()).toArray());
+		@SuppressWarnings("unchecked")
+		final List<EObject> toDuplicate = ((IStructuredSelection) getTableViewer().getSelection()).toList();
 
-		final Collection<Object> copies = copyElements(
+		final Collection<EObject> copies = copyElements(
 			eObject, eStructuralFeature, getEditingDomainForContainment(), toDuplicate);
 
 		getTableViewer().setSelection(new StructuredSelection(copies.iterator().next()), true);
 	}
 
-	private Collection<Object> copyElements(EObject eObject, EStructuralFeature structuralFeature,
-		EditingDomain editingDomain, Collection<?> elementsToCopy) {
-		final Collection<Object> copies = EcoreUtil.copyAll(elementsToCopy);
+	private Collection<EObject> copyElements(EObject eObject, EStructuralFeature structuralFeature,
+		EditingDomain editingDomain, Collection<EObject> elementsToCopy) {
+
+		final Collection<EObject> copies = copy(elementsToCopy);
 		final Command createCommand = AddCommand.create(editingDomain, eObject, structuralFeature, copies);
 		if (createCommand.canExecute()) {
 			if (editingDomain.getCommandStack() == null) {
@@ -90,6 +93,35 @@
 		return copies;
 	}
 
+	/**
+	 * Copies the collection of {@link EObject}.
+	 *
+	 * @param elementsToCopy The {@link Collection} to copy
+	 * @return The copied {@link Collection}
+	 */
+	Collection<EObject> copy(Collection<EObject> elementsToCopy) {
+		final Copier copier = new Copier();
+		final Collection<EObject> copies = copier.copyAll(elementsToCopy);
+		copier.copyReferences();
+		copier.forEach(this::copyBidirectionalReferences);
+		return copies;
+	}
+
+	private void copyBidirectionalReferences(final EObject original, final EObject copy) {
+		final Map<EObject, Collection<Setting>> find = EcoreUtil.ExternalCrossReferencer.find(original);
+		// find all bidirectional references and manually set them on the copy
+		find.forEach((referenced, settings) -> {
+			settings.forEach(setting -> {
+				final EStructuralFeature feat = setting.getEStructuralFeature();
+				final EReference opp = ((EReference) feat).getEOpposite();
+				// if the opposite is a singleton, then we would change its reference, so ignore
+				if (opp != null && opp.isMany() && setting.getEObject() == original) {
+					copy.eSet(feat, setting.get(true));
+				}
+			});
+		});
+	}
+
 	@Override
 	public boolean canExecute() {
 		if (isTableDisabled() || isUpperBoundReached() || isViewerSelectionInvalid()) {
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction.java
index 7e12c0a..c4d6544 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction.java
@@ -16,7 +16,11 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CompoundCommand;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
@@ -68,22 +72,23 @@
 		// need to reverse to avoid the moves interfering each other
 		Collections.reverse(moveDownList);
 
-		// shouldn't this be wrapped in a CompositeCommand?
 		final int maxIndex = containments.size() - 1;
 		final EditingDomain editingDomain = getActionContext().getEditingDomain();
 		final Setting setting = getActionContext().getSetting();
 		final EObject eObject = setting.getEObject();
 		final EStructuralFeature eStructuralFeature = setting.getEStructuralFeature();
-		for (final Object moveDownObject : moveDownList) {
+
+		final List<Command> commands = moveDownList.stream().map(moveDownObject -> {
 			final int currentIndex = containments.indexOf(moveDownObject);
 			if (currentIndex < 0 || currentIndex == maxIndex) {
-				return;
+				return null;
 			}
-			editingDomain.getCommandStack()
-				.execute(
-					new MoveCommand(
-						editingDomain, eObject, eStructuralFeature, currentIndex, currentIndex + 1));
-		}
+			return new MoveCommand(
+				editingDomain, eObject, eStructuralFeature, currentIndex, currentIndex + 1);
+		}).filter(Objects::nonNull).collect(Collectors.toList());
+
+		editingDomain.getCommandStack().execute(new CompoundCommand(commands));
+		getTableViewer().refresh();
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction.java
index 75eeac6..04f0b50 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction.java
@@ -15,7 +15,11 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CompoundCommand;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
@@ -65,21 +69,22 @@
 			((IStructuredSelection) getTableViewer().getSelection()).toArray());
 		sortSelectionBasedOnIndex(moveUpList, containments);
 
-		// shouldn't this be wrapped in a CompositeCommand?
 		final EditingDomain editingDomain = getActionContext().getEditingDomain();
 		final Setting setting = getActionContext().getSetting();
 		final EObject eObject = setting.getEObject();
 		final EStructuralFeature eStructuralFeature = setting.getEStructuralFeature();
-		for (final Object moveUpObject : moveUpList) {
+
+		final List<Command> commands = moveUpList.stream().map(moveUpObject -> {
 			final int currentIndex = containments.indexOf(moveUpObject);
 			if (currentIndex <= 0) {
-				return;
+				return null;
 			}
-			editingDomain.getCommandStack()
-				.execute(
-					new MoveCommand(
-						editingDomain, eObject, eStructuralFeature, currentIndex, currentIndex - 1));
-		}
+			return new MoveCommand(
+				editingDomain, eObject, eStructuralFeature, currentIndex, currentIndex - 1);
+		}).filter(Objects::nonNull).collect(Collectors.toList());
+
+		editingDomain.getCommandStack().execute(new CompoundCommand(commands));
+		getTableViewer().refresh();
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.table.validation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.table.validation/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.validation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.table.validation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a09368e..be45f89 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 d4ca909..01c9626 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d8d3406..bc11852 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.template.selector.annotation.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.22.0,1.23.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 eff82ed..1b0fcd0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.annotation.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.template.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.template.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e3f9b41..1590536 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.template.selector.annotation.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.annotation.model.util;version="1.21.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.22.0",
+ org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.annotation.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.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 8dc71cd..7eea656 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 49e1725..3241bc0 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-friends:="org.eclipse.emf.ecp.view.template.annotation.model.edit",
- org.eclipse.emf.ecp.view.template.selector.bool.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.hierarchy.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.alignment.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.background.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.fontProperties.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.keybinding.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.labelwidth.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.mandatory.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.reference.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tab.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tableValidation.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.unsettable.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.validation.model.provider;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.wrap.model.provider;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.template.model.provider;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.annotation.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.bool.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.keybinding.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.reference.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tab.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.wrap.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.model.edit/pom.xml
index ee6b107..50e7498 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

 </project>

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 86256e3..c5eb0d1 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
@@ -37,6 +37,12 @@
                 <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
+        <filter comment="API/SPI Change" id="927989779">
+            <message_arguments>
+                <message_argument value="1.22.0"/>
+                <message_argument value="org.eclipse.emf.ecore.xmi"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport">
         <filter comment="SPI Change in 1.6" id="305422471">
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.template.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 34fff01..ef2e3ac 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,77 +2,77 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.model.util;version="1.21.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.21.0",
- org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.bool.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.selector.hierarchy.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.hierarchy.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.selector.viewModelElement.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.alignment.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.alignment.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.background.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.background.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.fontProperties.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.fontProperties.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.keybinding.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.keybinding.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.keybinding.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.labelwidth.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.labelwidth.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.mandatory.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.mandatory.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.reference.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.reference.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.tab.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tab.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.tableValidation.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tableValidation.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.textControlEnablement.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.unsettable.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.unsettable.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.validation.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.validation.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
- org.eclipse.emf.ecp.view.template.style.wrap.model;version="1.21.0",
- org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.wrap.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit"
+Export-Package: org.eclipse.emf.ecp.internal.view.template.model;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.model.util;version="1.22.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.22.0",
+ org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.bool.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.alignment.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.background.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.keybinding.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.keybinding.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.keybinding.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.mandatory.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.reference.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.reference.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tab.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tab.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.unsettable.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.validation.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.util;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.wrap.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.wrap.model.util;version="1.22.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.ecore.xmi;visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)"
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 8c439be..4dc8068 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/internal/view/template/model/Activator.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/internal/view/template/model/Activator.java
index 7186836..bb68b4d 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/internal/view/template/model/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/internal/view/template/model/Activator.java
@@ -16,9 +16,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
 
 /**
  * The Class Activator.
@@ -34,7 +32,6 @@
 	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.template.model"; //$NON-NLS-1$
 
 	private static Activator plugin;
-	private ServiceReference<ReportService> reportServiceReference;
 
 	// BEGIN SUPRESS CATCH EXCEPTION
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.template.service/.project b/bundles/org.eclipse.emf.ecp.view.template.service/.project
index bedeac6..e4a3d30 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/.project
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/.project
@@ -41,6 +41,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.service/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.template.service/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 288d947..7cef32e 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewTemplate Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.service;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0",
- org.eclipse.emf.ecp.view.template.service;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.service;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.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/OSGI-INF/ViewTemplateSupplierImpl.xml b/bundles/org.eclipse.emf.ecp.view.template.service/OSGI-INF/ViewTemplateSupplierImpl.xml
index 82de3e8..f9aa447 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/OSGI-INF/ViewTemplateSupplierImpl.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/OSGI-INF/ViewTemplateSupplierImpl.xml
@@ -4,6 +4,7 @@
       <provide interface="org.eclipse.emf.ecp.spi.view.template.service.ViewTemplateSupplier"/>
    </service>
    <reference bind="setEMFFormsSegmentGenerator" interface="org.eclipse.emfforms.spi.core.services.segments.EMFFormsSegmentGenerator" name="EMFFormsSegmentGenerator"/>
+   <reference bind="setLegacyDmrToRootEClass" interface="org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass" name="LegacyDmrToRootEClass"/>
    <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
    <implementation class="org.eclipse.emf.ecp.view.template.service.ViewTemplateSupplierImpl"/>
 </scr:component>
\ No newline at end of file
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 3d95fb4..2c02604 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

   <properties>

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

diff --git a/bundles/org.eclipse.emf.ecp.view.template.service/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl.java b/bundles/org.eclipse.emf.ecp.view.template.service/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl.java
index 09d0265..19cf515 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl.java
@@ -19,6 +19,7 @@
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -34,7 +35,6 @@
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.template.model.VTStyle;
 import org.eclipse.emf.ecp.view.template.model.VTStyleProperty;
 import org.eclipse.emf.ecp.view.template.model.VTStyleSelector;
@@ -43,6 +43,7 @@
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.segments.EMFFormsSegmentGenerator;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
 import org.eclipse.emfforms.spi.core.services.segments.RuntimeModeUtil;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.component.annotations.Activate;
@@ -66,6 +67,7 @@
 
 	private ReportService reportService;
 	private EMFFormsSegmentGenerator segmentGenerator;
+	private LegacyDmrToRootEClass dmrToRootEClass;
 
 	/**
 	 * Sets the report service.
@@ -88,6 +90,16 @@
 	}
 
 	/**
+	 * Sets the {@link LegacyDmrToRootEClass}.
+	 *
+	 * @param dmrToRootEClass The {@link LegacyDmrToRootEClass}
+	 */
+	@Reference(unbind = "-")
+	void setLegacyDmrToRootEClass(LegacyDmrToRootEClass dmrToRootEClass) {
+		this.dmrToRootEClass = dmrToRootEClass;
+	}
+
+	/**
 	 * Startup method for osgi service.
 	 *
 	 * @param bundleContext the {@link BundleContext}
@@ -139,23 +151,25 @@
 		for (final VTDomainModelReferenceSelector dmrSelector : dmrSelectors) {
 			final VDomainModelReference dmr = dmrSelector.getDomainModelReference();
 
-			// If the dmr isn't a feature dmr, we cannot determine the root EClass
 			// If the dmr already contains segments, there isn't anything to do
-			if (!(dmr instanceof VFeaturePathDomainModelReference) || !dmr.getSegments().isEmpty()) {
+			if (!dmr.getSegments().isEmpty()) {
 				continue;
 			}
+
+			// Do not set segments if the root EClass cannot be determined because a segment based dmr is not resolvable
+			// without its root EClass
+			final Optional<EClass> rootEClass = dmrToRootEClass.getRootEClass(dmr);
+			if (!rootEClass.isPresent()) {
+				continue;
+			}
+
 			final List<VDomainModelReferenceSegment> segments = segmentGenerator.generateSegments(dmr);
 			if (segments.isEmpty()) {
 				continue;
 			}
 			dmr.getSegments().addAll(segments);
 
-			// determine and set root EClass
-			final VFeaturePathDomainModelReference featureDmr = (VFeaturePathDomainModelReference) dmr;
-			final EClass rootEClass = featureDmr.getDomainModelEReferencePath().isEmpty()
-				? featureDmr.getDomainModelEFeature().getEContainingClass()
-				: featureDmr.getDomainModelEReferencePath().get(0).getEContainingClass();
-			dmrSelector.setRootEClass(rootEClass);
+			dmrSelector.setRootEClass(rootEClass.get());
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.template.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4bbc451..bbd6663 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Template Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.tooling;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.internal.tooling.controls;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.internal.tooling.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.tooling;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.tooling.editor;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.tooling.wizards;version="1.21.0";x-friends:="org.eclipse.emf.ecp.ide.editor.view.templatebridge"
+Export-Package: org.eclipse.emf.ecp.view.template.internal.tooling;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.internal.tooling.controls;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.internal.tooling.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.tooling;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.tooling.editor;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.tooling.wizards;version="1.22.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)",
@@ -18,29 +18,32 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.migrator;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.view.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)"
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
  org.eclipse.jface.databinding.swt;version="0.0.0",
  org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.tooling
 Service-Component: OSGI-INF/DmrSelectorSegmentDmrControlSWTRendererService.xml
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
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 d7ee812..556d859 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/internal/tooling/Messages.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/Messages.java
index 51b2203..c4e4540 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/Messages.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/Messages.java
@@ -72,6 +72,10 @@
 	public static String MigrationDialogHelper_TemplatesTitle;
 	public static String TemplateModelEditorPart_initError;
 	public static String TemplateModelEditorPart_invalidEditorInput;
+	public static String TemplateModelEditorPart_LegacyMigrationErrorMessage;
+	public static String TemplateModelEditorPart_LegacyMigrationErrorTitle;
+	public static String TemplateModelEditorPart_LegacyMigrationQuestionMessage;
+	public static String TemplateModelEditorPart_LegacyMigrationQuestionTitle;
 	public static String TemplateModelEditorPart_MigrationDescription;
 	public static String TemplateModelEditorPart_MigrationQuestion;
 	public static String TemplateModelEditorPart_TemplateMigrationDescription;
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlTester.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlTester.java
index 97d3edd..14e6a66 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlTester.java
@@ -17,7 +17,6 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferencePackage;
@@ -25,6 +24,7 @@
 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;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 
 /**
  * The tester for the {@link ViewModelSelectControlSWTRenderer}.
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DmrSelectorSegmentDmrControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DmrSelectorSegmentDmrControlSWTRendererService.java
index ff365cb..821775d 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DmrSelectorSegmentDmrControlSWTRendererService.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DmrSelectorSegmentDmrControlSWTRendererService.java
@@ -16,7 +16,6 @@
 import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferencePackage;
@@ -24,6 +23,7 @@
 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;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
 import org.osgi.service.component.annotations.Component;
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 26b7b60..6e21c6e 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
@@ -11,35 +11,53 @@
  * Contributors:
  * Eugen Neufeld - initial API and implementation
  * Lucas Koehler - add migration of view ecore namespace URI
+ * Lucas Koehler - add support to open file from history revision (bug 541191)
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.tooling.editor;
 
+import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
+import java.nio.file.Files;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Optional;
 
+import org.eclipse.core.resources.IStorage;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 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.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.XMLResource;
 import org.eclipse.emf.ecp.ide.spi.util.EcoreHelper;
 import org.eclipse.emf.ecp.spi.view.migrator.TemplateModelMigrationException;
 import org.eclipse.emf.ecp.spi.view.migrator.TemplateModelMigratorUtil;
 import org.eclipse.emf.ecp.spi.view.migrator.TemplateModelWorkspaceMigrator;
 import org.eclipse.emf.ecp.spi.view.migrator.ViewNsMigrationUtil;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.internal.tooling.Messages;
 import org.eclipse.emf.ecp.view.template.internal.tooling.util.MigrationDialogHelper;
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplate;
+import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainModelReferenceSelector;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
 import org.eclipse.emfforms.spi.editor.GenericEditor;
+import org.eclipse.emfforms.spi.editor.helpers.ResourceSetHelpers;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrationException;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator.PreReplaceProcessor;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailComposite;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.RootObject;
@@ -53,10 +71,12 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IPathEditorInput;
+import org.eclipse.ui.IStorageEditorInput;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.part.FileEditorInput;
 
 /**
  * EditorPart for the Template Model Editor.
@@ -68,38 +88,36 @@
 
 	private VTViewTemplate template;
 	private TreeMasterDetailComposite treeMasterDetail;
+	private File inputFile;
 
 	@Override
 	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		if (!(input instanceof FileEditorInput)) {
+		super.setSite(site);
+		final Optional<File> inputFileOptional = getInputFile(input);
+		if (!inputFileOptional.isPresent()) {
 			throw new PartInitException(Messages.TemplateModelEditorPart_invalidEditorInput);
 		}
-		final FileEditorInput fei = (FileEditorInput) input;
 
+		inputFile = inputFileOptional.get();
 		try {
-			if (!ViewNsMigrationUtil.checkMigration(fei.getPath().toFile())) {
+			// Register the referenced ecores before the migrations because the legacy dmr to segment dmr migration only
+			// works if all referenced ecores are registered
+			registerReferencedEcores(URI.createFileURI(inputFile.getAbsolutePath()));
+
+			if (!ViewNsMigrationUtil.checkMigration(inputFile)) {
 				final boolean migrate = MessageDialog.openQuestion(site.getShell(),
 					Messages.TemplateModelEditorPart_MigrationQuestion,
 					Messages.TemplateModelEditorPart_MigrationDescription);
 				if (migrate) {
-					ViewNsMigrationUtil.migrateViewEcoreNsUri(fei.getPath().toFile());
+					ViewNsMigrationUtil.migrateViewEcoreNsUri(inputFile);
 					migrateWorkspaceModels(site.getShell());
+					if (ToolingModeUtil.isSegmentToolingEnabled()) {
+						migrateLegacyDmrs(site.getShell(), Path.fromOSString(inputFile.getAbsolutePath()));
+					}
 				}
+			} else if (ToolingModeUtil.isSegmentToolingEnabled()) {
+				migrateLegacyDmrs(site.getShell(), Path.fromOSString(inputFile.getAbsolutePath()));
 			}
-
-			final ResourceSet resourceSet = new ResourceSetImpl();
-			final Resource resource = resourceSet.createResource(URI.createURI(fei.getURI().toURL().toExternalForm()));
-			resource.load(null);
-			final EList<EObject> resourceContents = resource.getContents();
-			if (resourceContents.size() > 0 && VTViewTemplate.class.isInstance(resourceContents.get(0))) {
-				final VTViewTemplate template = (VTViewTemplate) resourceContents.get(0);
-				for (final String ecorePath : template.getReferencedEcores()) {
-					EcoreHelper.registerEcore(ecorePath);
-				}
-			} else {
-				throw new PartInitException(Messages.TemplateModelEditorPart_initError);
-			}
-
 		} catch (final IOException e) {
 			Activator.log(e);
 			throw new PartInitException(Messages.TemplateModelEditorPart_initError, e);
@@ -111,15 +129,88 @@
 		super.setPartName(input.getName());
 	}
 
+	/**
+	 * Gets a file from the given {@link IEditorInput}. If the editor input is a {@link IPathEditorInput} or a
+	 * {@link IStorageEditorInput} whose {@link IStorage} has a path, the {@link File} is directly derived from the
+	 * path. In case of a {@link IStorageEditorInput} without a path, a temporary file is created which contains the
+	 * storage's contents.
+	 * In any other case, an empty Optional is returned.
+	 *
+	 * @param editorInput The editor's input
+	 * @return The File containing the editor inputs contents if possible, nothing otherwise
+	 */
+	private Optional<File> getInputFile(IEditorInput editorInput) {
+		if (isEditable(editorInput)) {
+			// Normal file that can be edited on the hard drive
+			if (editorInput instanceof IPathEditorInput) {
+				return Optional.of(IPathEditorInput.class.cast(editorInput).getPath().toFile());
+			}
+			if (editorInput instanceof IFileEditorInput) {
+				return Optional.of(IFileEditorInput.class.cast(editorInput).getFile().getFullPath().toFile());
+			}
+		} else if (editorInput instanceof IStorageEditorInput) {
+			try {
+				final IStorage storage = IStorageEditorInput.class.cast(editorInput).getStorage();
+				// Create a temporary file and copy the storage's content to it.
+				final File tempFile = File.createTempFile("template-", ".tmp.template"); //$NON-NLS-1$ //$NON-NLS-2$
+				tempFile.delete();
+				tempFile.deleteOnExit();
+				try (InputStream contents = storage.getContents()) {
+					Files.copy(contents, tempFile.toPath());
+					return Optional.of(tempFile);
+				}
+			} catch (final CoreException | IOException ex) {
+				Activator.log(ex);
+				return Optional.empty();
+			}
+
+		}
+		return Optional.empty();
+	}
+
+	private void registerReferencedEcores(URI resourceUri) throws IOException, PartInitException {
+		final ResourceSet resourceSet = new ResourceSetImpl();
+		final Resource resource = resourceSet.createResource(resourceUri);
+		resource.load(Collections.singletonMap(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE));
+		final EList<EObject> resourceContents = resource.getContents();
+		if (resourceContents.size() > 0 && VTViewTemplate.class.isInstance(resourceContents.get(0))) {
+			final VTViewTemplate template = (VTViewTemplate) resourceContents.get(0);
+			for (final String ecorePath : template.getReferencedEcores()) {
+				EcoreHelper.registerEcore(ecorePath);
+			}
+		} else {
+			throw new PartInitException(Messages.TemplateModelEditorPart_initError);
+		}
+	}
+
+	@Override
+	protected ResourceSet loadResource(IEditorInput editorInput) throws PartInitException {
+		ResourceSet resourceSet = ResourceSetHelpers.createResourceSet(getCommandStack());
+		// Load resource from input file that we determined or created during initialization
+		final URI resourceURI = URI.createFileURI(inputFile.getAbsolutePath());
+
+		try {
+			resourceSet = ResourceSetHelpers.loadResourceWithProxies(resourceURI, resourceSet,
+				getResourceLoadOptions());
+			verifyEditorResource(resourceURI, resourceSet);
+			return resourceSet;
+			// CHECKSTYLE.OFF: IllegalCatch
+		} catch (final Exception e) {
+			// CHECKSTYLE.ON: IllegalCatch
+			throw new PartInitException(e.getLocalizedMessage(), e);
+		}
+	}
+
+	@Override
+	protected void refreshTreeAfterResourceChange() {
+		// Need to reset the resource after a resource change because the resource is unloaded and reloaded and we wrap
+		// the template model in our own root object. Without explicitly resetting the input again, all objects in the
+		// editor are proxies.
+		getRootView().setInput(modifyEditorInput(getResourceSet()));
+	}
+
 	@Override
 	protected Object modifyEditorInput(ResourceSet resourceSet) {
-		// Make sure all proxies are resolved before showing the editor
-		int rsSize = getResourceSet().getResources().size();
-		EcoreUtil.resolveAll(getResourceSet());
-		while (rsSize != getResourceSet().getResources().size()) {
-			EcoreUtil.resolveAll(getResourceSet());
-			rsSize = getResourceSet().getResources().size();
-		}
 		/* this access is save, otherwise we would have thrown a part init exception in init */
 		template = VTViewTemplate.class.cast(resourceSet.getResources().get(0).getContents().get(0));
 		return new RootObject(template);
@@ -164,6 +255,44 @@
 	}
 
 	/**
+	 * Checks whether the current view model contains any legacy DMRs. If yes, ask the user whether (s)he wants to
+	 * migrate them to segment based DMRs and execute the migration if the user accepts.
+	 *
+	 * @param shell The shell to open UI dialogs on
+	 * @param resourcePath the resource path of the template model to migrate
+	 */
+	private void migrateLegacyDmrs(Shell shell, final IPath resourcePath) {
+		final DmrToSegmentsMigrator migrator = getEditorSite().getService(DmrToSegmentsMigrator.class);
+		final URI resourceURI = URI.createFileURI(resourcePath.toFile().getAbsolutePath());
+		if (migrator.needsMigration(resourceURI)) {
+			final boolean migrate = MessageDialog.openQuestion(shell,
+				Messages.TemplateModelEditorPart_LegacyMigrationQuestionTitle,
+				Messages.TemplateModelEditorPart_LegacyMigrationQuestionMessage);
+			if (migrate) {
+				try {
+					new ProgressMonitorDialog(shell).run(true, false, monitor -> {
+						try {
+							final LegacyDmrToRootEClass dmrToRootEClass = getEditorSite()
+								.getService(LegacyDmrToRootEClass.class);
+							migrator.performMigration(resourceURI, new DmrSelectorPreReplaceProcessor(dmrToRootEClass));
+						} catch (final DmrToSegmentsMigrationException ex) {
+							throw new InvocationTargetException(ex);
+						}
+					});
+				} catch (InvocationTargetException | InterruptedException ex) {
+					MessageDialog.openError(
+						Display.getDefault().getActiveShell(),
+						Messages.TemplateModelEditorPart_LegacyMigrationErrorTitle,
+						Messages.TemplateModelEditorPart_LegacyMigrationErrorMessage);
+					Activator.getDefault().getLog().log(
+						new Status(IStatus.ERROR, Activator.PLUGIN_ID,
+							Messages.TemplateModelEditorPart_LegacyMigrationErrorTitle, ex));
+				}
+			}
+		}
+	}
+
+	/**
 	 * If there is a template migrator, prompt the user if (s)he wants to search the workspace for template models that
 	 * need migration. Afterwards, let the user chose which models to migrate and execute the migration.
 	 * <p>
@@ -256,4 +385,31 @@
 		return true;
 	}
 
+	/**
+	 * {@link PreReplaceProcessor} for the legacy dmr migration which extracts the root EClass from a legacy dmr and
+	 * sets it to its containing {@link VTDomainModelReferenceSelector}.
+	 */
+	protected static class DmrSelectorPreReplaceProcessor implements PreReplaceProcessor {
+
+		private final LegacyDmrToRootEClass dmrToRootEClass;
+
+		/**
+		 * Default constructor.
+		 *
+		 * @param dmrToRootEClass The {@link LegacyDmrToRootEClass}
+		 */
+		public DmrSelectorPreReplaceProcessor(LegacyDmrToRootEClass dmrToRootEClass) {
+			this.dmrToRootEClass = dmrToRootEClass;
+		}
+
+		@Override
+		public void process(VDomainModelReference legacyDmr, VDomainModelReference segmentDmr) {
+			if (legacyDmr.eContainer() instanceof VTDomainModelReferenceSelector) {
+				final VTDomainModelReferenceSelector selector = (VTDomainModelReferenceSelector) legacyDmr.eContainer();
+				final Optional<EClass> rootEClass = dmrToRootEClass.getRootEClass(legacyDmr);
+				rootEClass.ifPresent(selector::setRootEClass);
+			}
+		}
+
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/messages.properties b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/messages.properties
index fc66e01..fb9e58a 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/messages.properties
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/messages.properties
@@ -45,6 +45,10 @@
 MigrationDialogHelper_TemplatesTitle=The following template models in your workspace need migration.\n\nPlease select the template models to migrate:
 TemplateModelEditorPart_initError=Error while displaying resource. Please check the contents of the input file.
 TemplateModelEditorPart_invalidEditorInput=The View Template editor only supports files as input.
+TemplateModelEditorPart_LegacyMigrationErrorMessage=An error occured while migrating legacy domain model references to segments. More information on the error can be found in the error log.
+TemplateModelEditorPart_LegacyMigrationErrorTitle=EMFForms Legacy DMR Migration Error
+TemplateModelEditorPart_LegacyMigrationQuestionMessage=The current view template still uses legacy domain model references. Should they be migrated to segment based domain model references? This cannot be undone.
+TemplateModelEditorPart_LegacyMigrationQuestionTitle=Migrate Legacy Domain Model References?
 TemplateModelEditorPart_MigrationDescription=This template model was saved using an older version of EMF Forms.\nAutomatically migrate to the latest version?
 TemplateModelEditorPart_MigrationQuestion=Migrate Template Model?
 TemplateModelEditorPart_TemplateMigrationDescription=Do you want to scan the workspace for template models that need migration?
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3617207..51c2ff9 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 294089c..4047a2f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 fe02927..ade44c2 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model;version="1.21.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.treemasterdetail.model.util;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model.edit"
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model;version="1.22.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.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 f1f1342..3de56cc 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8a4c88a..31b800a 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,30 +2,32 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.21.0",
- org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;version="1.21.0";x-internal:=true,
- org.eclipse.emf.edit.ui.action.ecp;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.22.0",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.edit.ui.action.ecp;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)"
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.core.commands;version="0.0.0",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.22.0,1.23.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",
@@ -37,8 +39,10 @@
  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.views.properties;version="0.0.0";resolution:=optional,
  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
+Service-Component: OSGI-INF/TreeMasterDetailSWTRendererService.xml,
+ OSGI-INF/treeRevealProvider.xml
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/OSGI-INF/treeRevealProvider.xml b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/OSGI-INF/treeRevealProvider.xml
new file mode 100644
index 0000000..6b4e940
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/OSGI-INF/treeRevealProvider.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="treeRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.TreeRevealProvider"/>
+</scr:component>
\ No newline at end of file
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 f54afdb..c93c424 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 16e1690..7afb40c 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
@@ -13,14 +13,17 @@
  * Eugen Neufeld - Refactoring
  * Alexandra Buzila - Refactoring
  * Johannes Faltermeier - integration with validation service
- * Christian W. Damus - bugs 543376, 545460
+ * Christian W. Damus - bugs 543376, 545460, 527686, 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 
@@ -50,7 +53,6 @@
 import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.edit.spi.swt.util.SWTValidationHelper;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
 import org.eclipse.emf.ecp.view.internal.swt.ContextMenuViewModelService;
 import org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.swt.Activator;
@@ -61,14 +63,11 @@
 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.VElement;
 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.reporting.StatusReport;
-import org.eclipse.emf.ecp.view.spi.model.util.ViewModelPropertiesHelper;
-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.masterdetail.DetailViewCache;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewManager;
 import org.eclipse.emf.ecp.view.spi.swt.selection.IMasterDetailSelectionProvider;
 import org.eclipse.emf.ecp.view.spi.swt.services.ECPSelectionProviderService;
 import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
@@ -109,6 +108,8 @@
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
@@ -158,18 +159,26 @@
 	@Inject
 	public TreeMasterDetailSWTRenderer(final VTreeMasterDetail vElement, final ViewModelContext viewContext,
 		ReportService reportService) {
+
 		super(vElement, viewContext, reportService);
 	}
 
 	/**
 	 * The detail key passed to the view model context.
 	 */
-	public static final String DETAIL_KEY = "detail"; //$NON-NLS-1$
+	public static final String DETAIL_KEY = DetailViewManager.DETAIL_PROPERTY;
+
+	/**
+	 * Menu separator ID for the group to which additional menu contributions are added in the
+	 * tree's context menu.
+	 */
+	public static final String GLOBAL_ADDITIONS = "global_additions"; //$NON-NLS-1$
 
 	/**
 	 * Context key for the root.
 	 */
 	public static final String ROOT_KEY = "root"; //$NON-NLS-1$
+
 	private SWTGridDescription rendererGridDescription;
 
 	private Font detailsFont;
@@ -177,11 +186,6 @@
 	private Font titleFont;
 	private Color headerBgColor;
 	private TreeViewer treeViewer;
-	/**
-	 * Static string.
-	 *
-	 */
-	public static final String GLOBAL_ADDITIONS = "global_additions"; //$NON-NLS-1$
 
 	private ScrolledComposite rightPanel;
 
@@ -191,6 +195,7 @@
 
 	private ModelChangeListener domainModelListener;
 	private ViewModelContext childContext;
+	private DetailViewManager detailManager;
 
 	/**
 	 * @author jfaltermeier
@@ -275,14 +280,13 @@
 		}
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
-	 */
 	@Override
 	protected void dispose() {
 		rendererGridDescription = null;
+		if (detailManager != null) {
+			detailManager.dispose();
+		}
+		childContext = null;
 		if (getViewModelContext() != null && domainModelListener != null) {
 			getViewModelContext().unregisterDomainChangeListener(domainModelListener);
 		}
@@ -435,7 +439,9 @@
 			// the treeviewer doesn't autoexpand on refresh
 			@Override
 			public void notifyAdd(Notifier notifier) {
-				treeViewer.expandToLevel(notifier, 1);
+				if (isRenderingFinished()) {
+					treeViewer.expandToLevel(notifier, 1);
+				}
 			}
 
 			@Override
@@ -499,7 +505,7 @@
 	 * @return true if a context menu should be shown, false otherwise
 	 */
 	protected boolean hasContextMenu() {
-		return true;
+		return !getVElement().isEffectivelyReadonly();
 	}
 
 	/**
@@ -508,7 +514,7 @@
 	 * @return true if DnD should be supported , false otherwise
 	 */
 	protected boolean hasDnDSupport() {
-		return true;
+		return !getVElement().isEffectivelyReadonly();
 	}
 
 	/**
@@ -666,6 +672,10 @@
 		final Point point = container.computeSize(SWT.DEFAULT, SWT.DEFAULT);
 		rightPanel.setMinSize(point);
 
+		detailManager = new DetailViewManager(rightPanelContainerComposite);
+		detailManager.setCache(DetailViewCache.createCache(getViewModelContext()));
+		detailManager.layoutDetailParent(rightPanelContainerComposite);
+
 		return rightPanel;
 	}
 
@@ -927,76 +937,63 @@
 			}
 		}
 
-		private Composite childComposite;
-		private boolean currentDetailViewOriginalReadonly;
-
 		@Override
 		public void selectionChanged(SelectionChangedEvent event) {
 			final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
 			final Object treeSelected = getSelection(selection);
 
-			final Object selected = treeSelected == null ? treeSelected : manipulateSelection(treeSelected);
-			if (selected instanceof EObject) {
-				try {
-					if (childComposite != null) {
-						childComposite.dispose();
-						cleanCustomOnSelectionChange();
-					}
-					childComposite = createComposite();
+			detailManager.cacheCurrentDetail();
+			cleanCustomOnSelectionChange();
 
-					final Object root = manipulateSelection(((RootObject) ((TreeViewer) event.getSource()).getInput())
-						.getRoot());
+			final Object selectedObject = treeSelected == null ? treeSelected : manipulateSelection(treeSelected);
+			if (selectedObject instanceof EObject) {
+				final EObject selected = (EObject) selectedObject;
+				final Object root = manipulateSelection(((RootObject) ((TreeViewer) event.getSource()).getInput())
+					.getRoot());
 
-					final VElement viewModel = getViewModelContext().getViewModel();
-					final VViewModelProperties properties = ViewModelPropertiesHelper
-						.getInhertitedPropertiesOrEmpty(viewModel);
-					properties.addNonInheritableProperty(DETAIL_KEY, true);
+				final boolean rootSelected = selected == root;
+				VView view = null;
+				if (rootSelected) {
+					view = getVElement().getDetailView();
+				}
+				if (view == null || view.getChildren().isEmpty()) {
+					view = detailManager.getDetailView(getViewModelContext(), selected,
+						properties -> {
+							if (rootSelected) {
+								properties.addNonInheritableProperty(ROOT_KEY, true);
+							}
+						});
+				}
 
-					final boolean rootSelected = selected.equals(root);
-
-					if (rootSelected) {
-						properties.addNonInheritableProperty(ROOT_KEY, true);
-					}
-					VView view = null;
-					if (rootSelected) {
-						view = getVElement().getDetailView();
-					}
-					if (view == null || view.getChildren().isEmpty()) {
-						view = ViewProviderHelper.getView((EObject) selected, properties);
-					}
-					currentDetailViewOriginalReadonly = view.isReadonly();
-
+				if (detailManager.isCached(selected)) {
+					detailManager.activate(selected);
+				} else {
 					final ReferenceService referenceService = getViewModelContext().getService(
 						ReferenceService.class);
 					// we have a multi selection, the multi edit is enabled and the multi selection is valid
 					if (getViewModelContext().getContextValue(ENABLE_MULTI_EDIT) == Boolean.TRUE
 						&& selection.size() > 1
 						&& selected != getSelection(new StructuredSelection(selection.getFirstElement()))) {
-						childContext = ViewModelContextFactory.INSTANCE.createViewModelContext(view, (EObject) selected,
+						childContext = ViewModelContextFactory.INSTANCE.createViewModelContext(view, selected,
 							new TreeMasterDetailReferenceService(referenceService));
 					} else {
-						childContext = getViewModelContext().getChildContext((EObject) selected,
-							getVElement(), view, new TreeMasterDetailReferenceService(referenceService));
+						childContext = getViewModelContext().getChildContext(selected, getVElement(), view,
+							new TreeMasterDetailReferenceService(referenceService));
 					}
-					childContext.getViewModel()
-						.setReadonly(!getVElement().isEffectivelyEnabled() || getVElement().isEffectivelyReadonly()
-							|| currentDetailViewOriginalReadonly);
-					// visible does not make any sense
 
 					manipulateViewContext(childContext);
-					ECPSWTViewRenderer.INSTANCE.render(childComposite, childContext);
 
-					relayoutDetail();
-				} catch (final ECPRendererException e) {
-					Activator
-						.getDefault()
-						.getReportService()
-						.report(new StatusReport(
-							new Status(IStatus.ERROR, Activator.getDefault().getBundle().getSymbolicName(), e
-								.getMessage(), e)));
+					detailManager.render(childContext, ECPSWTViewRenderer.INSTANCE::render);
 				}
+
+				detailManager.setDetailReadOnly(!getVElement().isEffectivelyEnabled()
+					|| getVElement().isEffectivelyReadonly());
+			} else {
+				// No selection
+				childContext = null;
 			}
 
+			relayoutDetail();
 		}
 
 		private Object getSelection(IStructuredSelection selection) {
@@ -1032,21 +1029,6 @@
 			}
 			return treeSelected;
 		}
-
-		private Composite createComposite() {
-			final Composite parent = getDetailContainer();
-			final Composite composite = new Composite(parent, SWT.NONE);
-			composite.setBackground(parent.getBackground());
-
-			final GridLayout gridLayout = GridLayoutFactory.fillDefaults().create();
-			// gridLayout.marginTop = 7;
-			// gridLayout.marginLeft = 5;
-			composite.setLayout(gridLayout);
-			GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(composite);
-			// .indent(10, 10)
-			composite.layout(true, true);
-			return composite;
-		}
 	}
 
 	/**
@@ -1085,6 +1067,106 @@
 	}
 
 	/**
+	 * Reveal the given {@code object} in my tree.
+	 *
+	 * @param object an object to reveal
+	 * @return whether I succeeded in revealing it
+	 *
+	 * @since 1.22
+	 */
+	public boolean reveal(Object object) {
+		final TreePath treePath = getTreePathFor(object);
+		return reveal(treePath);
+	}
+
+	/**
+	 * Get a path to an {@object} in my tree.
+	 *
+	 * @param object an object in my tree
+	 * @return a path to it
+	 *
+	 * @since 1.22
+	 */
+	public TreePath getTreePathFor(Object object) {
+		final ITreeContentProvider content = (ITreeContentProvider) treeViewer.getContentProvider();
+		final Collection<?> roots = Arrays.asList(content.getElements(treeViewer.getInput()));
+
+		final List<Object> path = new LinkedList<Object>();
+		path.add(object);
+		for (Object parent = content.getParent(object); parent != null; parent = content.getParent(parent)) {
+			path.add(0, parent);
+
+			// Don't go above the root element
+			if (roots.contains(parent)) {
+				break;
+			}
+		}
+
+		return new TreePath(path.toArray());
+	}
+
+	/**
+	 * Reveal the given {@code path} in my tree.
+	 *
+	 * @param path a tree path to reveal
+	 * @return whether I succeeded in revealing it
+	 *
+	 * @since 1.22
+	 */
+	public boolean reveal(TreePath path) {
+		final ISelection newSelection = new TreeSelection(path);
+		if (!newSelection.equals(treeViewer.getSelection())) {
+			treeViewer.setSelection(new TreeSelection(path), true);
+		}
+		treeViewer.reveal(path);
+
+		return treeViewer.getStructuredSelection().getFirstElement() == path.getLastSegment();
+	}
+
+	/**
+	 * Query whether the given {@code path} exists in my tree.
+	 *
+	 * @param path a tree path
+	 * @return whether the path locates an element that exists in my tree
+	 *
+	 * @since 1.22
+	 */
+	public boolean hasPath(TreePath path) {
+		if (path.equals(TreePath.EMPTY)) {
+			return true;
+		}
+
+		final TreePath parentPath = path.getParentPath();
+		if (!hasPath(parentPath)) {
+			return false;
+		}
+
+		final ITreeContentProvider content = (ITreeContentProvider) treeViewer.getContentProvider();
+		Collection<?> children;
+		if (parentPath.equals(TreePath.EMPTY)) {
+			children = Arrays.asList(content.getElements(treeViewer.getInput()));
+		} else if (content.hasChildren(parentPath.getLastSegment())) {
+			children = Arrays.asList(content.getChildren(parentPath.getLastSegment()));
+		} else {
+			children = Collections.EMPTY_SET;
+		}
+
+		return children.contains(path.getLastSegment());
+	}
+
+	/**
+	 * Obtain the current detail context, if any.
+	 *
+	 * @return the view-model context of the details currently being presented,
+	 *         or {@code null} if none (usually because there is no selection in the tree)
+	 *
+	 * @since 1.22
+	 */
+	public ViewModelContext getDetailContext() {
+		return childContext;
+	}
+
+	/**
 	 * The label provider used for the detail tree.
 	 *
 	 * @author jfaltermeier
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/internal/TreeRevealProvider.java b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/internal/TreeRevealProvider.java
new file mode 100644
index 0000000..ba2fca7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/internal/TreeRevealProvider.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+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.treemasterdetail.ui.swt.TreeMasterDetailSWTRenderer;
+import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillUp;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.jface.viewers.TreePath;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for {@link VTreeMasterDetail} controls.
+ *
+ * @since 1.22
+ */
+@Component(name = "treeRevealProvider")
+public class TreeRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double treeBid = 5.0;
+
+	/**
+	 * I bid on the {@code element} if it is a {@link VTreeMasterDetail}.
+	 *
+	 * @param treeControl the element to bid on
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VTreeMasterDetail treeControl) {
+		return treeBid;
+	}
+
+	/**
+	 * Create a terminal reveal step to drill down into a tree control.
+	 *
+	 * @param context the view model context in which to find a renderer for the tree
+	 * @param helper a helper for master/detail reveal delegation
+	 * @param treeControl the tree in which to drill down
+	 * @param object the object to reveal
+	 * @return the drill-down reveal step
+	 */
+	@Create
+	public RevealStep reveal(ViewModelContext context, RevealHelper helper, VTreeMasterDetail treeControl,
+		EObject object) {
+
+		RevealStep result = RevealStep.fail();
+
+		final EObject rootObject = context.getDomainModel();
+		if (rootObject != null && EcoreUtil.isAncestor(rootObject, object)) {
+			// It's in this tree. Defer the access to the renderer because
+			// in a categorization it may not yet exist
+			result = helper.masterDetail(this, this);
+		}
+
+		return result;
+	}
+
+	@DrillUp
+	private EObject getParent(@Renderer TreeMasterDetailSWTRenderer renderer, EObject object) {
+		TreePath path = renderer.getTreePathFor(object);
+		while (!renderer.hasPath(path)) {
+			path = path.getParentPath();
+			if (path.equals(TreePath.EMPTY)) {
+				// Give up
+				return null;
+			}
+		}
+
+		return (EObject) path.getLastSegment();
+	}
+
+	@Reveal
+	private RevealStep revealMaster(@Renderer TreeMasterDetailSWTRenderer renderer, VElement masterView,
+		EObject masterSelection) {
+
+		return RevealStep.reveal(masterView, masterSelection, () -> renderer.reveal(masterSelection));
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 aed512f..defce4c 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,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms TreeMasterDetail Services
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.validation;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.internal.validation;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.internal.validation;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.jface.viewers;version="0.0.0"
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.0)",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.ui.views.properties;version="0.0.0";resolution:=optional
 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 bd695aa..57d9d69 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.unset/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.unset/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.unset/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.unset/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b348393..8aca370 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.unset;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.unset.test"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.unset;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.unset.test"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 abbca3e..ce79945 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

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

 

diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.util.swt.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.util.swt.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e4db7a6..0829036 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Util RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.util.swt.rap
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.util.swt.rap;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.util.swt.rap;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.swt.core.layout;version="[1.22.0,1.23.0)",
  org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0",
  org.osgi.framework;version="1.3.0",
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 b62c40f..7a9f17b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.util.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.util.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d6abe1a..04bb5c1 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.util.swt
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.util.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.util.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.util.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.util.swt;version="1.22.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.util.swt
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
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 e714b28..c4bddb9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8c268c7..9fbd528 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.validation.bean;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.validation.bean;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.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 ea890b5..3282bc2 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.validation.bean/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation.bean/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 785a605..20044ac 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms BeanValidation
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.validation.bean;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.validation.bean;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.validation;version="[1.0.0,2.0.0)",
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 0bf878c..0ae77ca 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.validation/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.validation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8f8f5ec..ec8494e 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,32 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Validation Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";
+Bundle-Localization: OSGI-INF/l10n/bundle
+Export-Package: org.eclipse.emf.ecp.view.internal.validation;version="1.22.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.21.0"
+ org.eclipse.emf.ecp.view.spi.validation;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: OSGI-INF/l10n/bundle
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.controlmapper;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.localization;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.controlmapper;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.0)",
  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.validation
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/pom.xml b/bundles/org.eclipse.emf.ecp.view.validation/pom.xml
index d240a2f..a196693 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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/ValidationServiceImpl.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ValidationServiceImpl.java
index 986a8aa..b92dd7b 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
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
- * Christian W. Damus - bugs 533522, 543160, 545686
+ * Christian W. Damus - bugs 533522, 543160, 545686, 527686, 548761
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.validation;
 
@@ -22,6 +22,7 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -36,12 +37,11 @@
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
@@ -62,14 +62,15 @@
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.validation.IncrementalValidationService;
 import org.eclipse.emf.ecp.view.spi.validation.ValidationProvider;
 import org.eclipse.emf.ecp.view.spi.validation.ValidationService;
+import org.eclipse.emf.ecp.view.spi.validation.ValidationUpdateListener;
 import org.eclipse.emf.ecp.view.spi.validation.ViewValidationListener;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.emfforms.common.internal.validation.DiagnosticHelper;
 import org.eclipse.emfforms.common.spi.validation.ValidationResultListener;
-import org.eclipse.emfforms.common.spi.validation.filter.AbstractSimpleFilter;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.common.validation.DiagnosticFrequencyMap;
@@ -77,9 +78,8 @@
 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;
 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.EMFFormsContextTracker;
 import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.osgi.util.NLS;
@@ -91,13 +91,29 @@
  * @author Eugen Neufeld
  *
  */
-public class ValidationServiceImpl implements ValidationService, EMFFormsContextListener {
+public class ValidationServiceImpl implements ValidationService, IncrementalValidationService {
 
 	/**
-	 * The {@link ValidationDomainModelChangeListener} for the view model.
+	 * The model change listener for the view model.
 	 *
 	 */
 	private class ViewModelChangeListener implements ModelChangeAddRemoveListener {
+		private final EMFFormsViewContext context;
+
+		private boolean initialized;
+
+		ViewModelChangeListener(EMFFormsViewContext context) {
+			super();
+
+			this.context = context;
+		}
+
+		/**
+		 * Start listening for changes in the view model.
+		 */
+		void start() {
+			initialized = true;
+		}
 
 		@Override
 		public void notifyChange(ModelChangeNotification notification) {
@@ -134,12 +150,6 @@
 			}
 		}
 
-		/**
-		 * @param notification
-		 * @param control
-		 * @param domainModelReference
-		 * @throws DatabindingFailedException
-		 */
 		private void handleControlNotification(ModelChangeNotification notification, VControl control,
 			VDomainModelReference domainModelReference) throws DatabindingFailedException {
 			if (VViewPackage.eINSTANCE.getElement_Enabled() == notification.getRawNotification().getFeature()) {
@@ -157,16 +167,22 @@
 
 		@Override
 		public void notifyAdd(Notifier notifier) {
+			if (!initialized) {
+				// Not interested in discover of the view model because we already validated everything
+				return;
+			}
+
 			if (VDomainModelReference.class.isInstance(notifier)
 				&& !VDomainModelReference.class.isInstance(EObject.class.cast(notifier).eContainer())
 				&& !VDomainModelReferenceSegment.class.isInstance(EObject.class.cast(notifier).eContainer())) {
-				final VDomainModelReference domainModelReference = VDomainModelReference.class.cast(notifier);
-				if (domainModelReference == null) {
-					return;
-				}
 
-				final Set<EObject> eObjectsToValidate = new LinkedHashSet<EObject>();
+				final VDomainModelReference domainModelReference = VDomainModelReference.class.cast(notifier);
+				/*
+				 * We only need to validate something if the new DMR belongs to a VControl. Only in this case there can
+				 * be a rendered UI control which needs to show validation results for the DMR's settings.
+				 */
 				if (VControl.class.isInstance(domainModelReference.eContainer())) {
+					final Set<EObject> eObjectsToValidate = new LinkedHashSet<>();
 					final Set<UniqueSetting> settings = mappingProviderManager.getAllSettingsFor(domainModelReference,
 						context.getDomainModel());
 					for (final UniqueSetting setting : settings) {
@@ -175,25 +191,8 @@
 							eObjectsToValidate.add(object);
 						}
 					}
-				} else {
-					@SuppressWarnings("rawtypes")
-					IObservableValue observableValue;
-					try {
-						observableValue = context.getService(EMFFormsDatabinding.class)
-							.getObservableValue(domainModelReference, context.getDomainModel());
-					} catch (final DatabindingFailedException ex) {
-						reportService.report(new DatabindingFailedReport(ex));
-						return;
-					}
-					final EObject observed = (EObject) ((IObserving) observableValue).getObserved();
-					observableValue.dispose();
-					if (observed != null) {
-						eObjectsToValidate.add(observed);
-					}
-
+					validate(eObjectsToValidate);
 				}
-				validate(eObjectsToValidate);
-
 			}
 		}
 
@@ -209,6 +208,13 @@
 	 *
 	 */
 	private class ValidationDomainModelChangeListener implements ModelChangeAddRemoveListener {
+		private final ViewModelContext context;
+
+		ValidationDomainModelChangeListener(ViewModelContext context) {
+			super();
+
+			this.context = context;
+		}
 
 		@Override
 		public void notifyChange(ModelChangeNotification notification) {
@@ -330,10 +336,11 @@
 
 	private org.eclipse.emfforms.common.spi.validation.ValidationService validationService;
 	private ValidationDomainModelChangeListener domainChangeListener;
-	private ViewModelChangeListener viewChangeListener;
-	private ViewModelContext context;
-	private final Queue<EObject> validationQueue = new ConcurrentLinkedSetQueue<EObject>();
-	private final Set<EObject> validated = Collections.newSetFromMap(new ConcurrentHashMap<EObject, Boolean>());
+	private ViewModelContext rootContext;
+	private EMFFormsContextTracker contextTracker;
+	private final Map<EMFFormsViewContext, ViewModelChangeListener> viewModelChangeListeners = new HashMap<>();
+	private final Queue<EObject> validationQueue = new ConcurrentLinkedSetQueue<>();
+	private final Set<EObject> validated = Collections.newSetFromMap(new ConcurrentHashMap<>());
 	private final AtomicBoolean validationRunning = new AtomicBoolean(false);
 
 	// In a typical application, these lists will usually have zero or one element. In
@@ -350,9 +357,11 @@
 	// Maximal number of problems to propagate up the view hierarchy, or negative for no limit
 	private int propagationThreshold;
 
+	private final Set<ValidationUpdateListener> validationUpdateListeners = new LinkedHashSet<>();
+
 	@Override
 	public void instantiate(ViewModelContext context) {
-		this.context = context;
+		rootContext = context;
 		reportService = context.getService(ReportService.class);
 		l10n = context.getService(EMFFormsLocalizationService.class);
 		placeholderFactory = new ThresholdDiagnostic.Factory(l10n);
@@ -373,17 +382,9 @@
 		propagationThreshold = getPropagationThreshold();
 
 		validationService = new org.eclipse.emfforms.common.internal.validation.ValidationServiceImpl();
-		validationService.registerValidationFilter(new AbstractSimpleFilter() {
-			@Override
-			public boolean skipValidation(EObject eObject) {
-				return validated.contains(eObject);
-			}
+		validationService.addDiagnosticFilter(this::ignoreDiagnostic);
+		validationService.addObjectFilter(this::skipValidation);
 
-			@Override
-			public boolean ignoreDiagnostic(EObject eObject, Diagnostic diagnostic) {
-				return !controlMapper.hasControlsFor(eObject);
-			}
-		});
 		validationService.registerValidationResultListener(new ValidationResultListener() {
 			@Override
 			public void onValidate(EObject eObject, Diagnostic diagnostic) {
@@ -414,11 +415,23 @@
 
 		registerValidationProviders();
 
-		domainChangeListener = new ValidationDomainModelChangeListener();
-		viewChangeListener = new ViewModelChangeListener();
+		domainChangeListener = new ValidationDomainModelChangeListener(context);
 		context.registerDomainChangeListener(domainChangeListener);
-		context.registerViewChangeListener(viewChangeListener);
-		context.registerEMFFormsContextListener(this);
+		addViewModelChangeListener(context);
+
+		contextTracker = new EMFFormsContextTracker(rootContext);
+		contextTracker.onContextInitialized(this::contextInitialised)
+			.onChildContextAdded(this::childContextAdded)
+			.onChildContextRemoved(this::childContextRemoved)
+			.open();
+	}
+
+	private boolean skipValidation(EObject eObject) {
+		return validated.contains(eObject);
+	}
+
+	private boolean ignoreDiagnostic(EObject eObject, Diagnostic diagnostic) {
+		return !controlMapper.hasControlsFor(eObject);
 	}
 
 	private void cleanControlDiagnostics(EObject parent, EReference parentReference, EObject removedEObject) {
@@ -456,9 +469,10 @@
 
 	@Override
 	public void dispose() {
-		context.unregisterEMFFormsContextListener(this);
-		context.unregisterDomainChangeListener(domainChangeListener);
-		context.unregisterViewChangeListener(viewChangeListener);
+		contextTracker.close();
+		viewModelChangeListeners.forEach((ctx, l) -> ctx.unregisterViewChangeListener(l));
+		viewModelChangeListeners.clear();
+		rootContext.unregisterDomainChangeListener(domainChangeListener);
 		adapterFactory.dispose();
 	}
 
@@ -467,6 +481,23 @@
 		return 1;
 	}
 
+	private void addViewModelChangeListener(EMFFormsViewContext context) {
+		final ViewModelChangeListener listener = new ViewModelChangeListener(context);
+
+		if (viewModelChangeListeners.putIfAbsent(context, listener) == null) {
+			context.registerViewChangeListener(listener);
+			listener.start();
+		}
+	}
+
+	private void removeViewModelChangeListener(EMFFormsViewContext context) {
+		final ViewModelChangeListener listener = viewModelChangeListeners.remove(context);
+
+		if (listener != null) {
+			context.unregisterViewChangeListener(listener);
+		}
+	}
+
 	/**
 	 * Returns a collection of all direct and indirect child-EObjects including the parent.
 	 *
@@ -547,6 +578,7 @@
 		}
 		update();
 		notifyListeners();
+		notifyUpdateListeners();
 		currentUpdates.clear();
 		validated.clear();
 		validationRunning.compareAndSet(true, false);
@@ -590,7 +622,7 @@
 					continue;
 				}
 				// TODO performance
-				if (!isObjectStillValid(diagnosticEobject)) {
+				if (!isObjectStillValid(diagnosticEobject, eStructuralFeature, control)) {
 					continue;
 				}
 				final UniqueSetting uniqueSetting2 = UniqueSetting.createSetting(
@@ -636,8 +668,9 @@
 		return result;
 	}
 
-	private boolean isObjectStillValid(EObject diagnosticEobject) {
-		return controlMapper.hasControlsFor(diagnosticEobject);
+	private boolean isObjectStillValid(EObject diagnosticEobject, EStructuralFeature feature, VElement element) {
+		final UniqueSetting setting = UniqueSetting.createSetting(diagnosticEobject, feature);
+		return controlMapper.hasMapping(setting, element);
 	}
 
 	/**
@@ -899,8 +932,8 @@
 	@Override
 	public void addValidationProvider(ValidationProvider validationProvider, boolean revalidate) {
 		validationService.addValidator(validationProvider);
-		if (revalidate && context != null) {
-			validate(getAllEObjectsToValidate(context));
+		if (revalidate && rootContext != null) {
+			validate(getAllEObjectsToValidate(rootContext));
 		}
 	}
 
@@ -912,8 +945,8 @@
 	@Override
 	public void removeValidationProvider(ValidationProvider validationProvider, boolean revalidate) {
 		validationService.removeValidator(validationProvider);
-		if (revalidate && context != null) {
-			validate(getAllEObjectsToValidate(context));
+		if (revalidate && rootContext != null) {
+			validate(getAllEObjectsToValidate(rootContext));
 		}
 	}
 
@@ -931,7 +964,7 @@
 
 	private Set<Diagnostic> getDiagnosticResult() {
 		final Set<Diagnostic> result = new LinkedHashSet<Diagnostic>();
-		final VDiagnostic diagnostic = context.getViewModel().getDiagnostic();
+		final VDiagnostic diagnostic = rootContext.getViewModel().getDiagnostic();
 		if (diagnostic != null) {
 			for (final Object diagObject : diagnostic.getDiagnostics()) {
 				result.add((Diagnostic) diagObject);
@@ -950,31 +983,27 @@
 		// do nothing
 	}
 
-	@Override
-	public void childContextAdded(VElement parentElement, EMFFormsViewContext childContext) {
+	private void childContextAdded(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
 		// 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);
+		addViewModelChangeListener(childContext);
 	}
 
-	@Override
-	public void childContextDisposed(EMFFormsViewContext childContext) {
-		// do nothing
+	private void childContextRemoved(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+		removeViewModelChangeListener(childContext);
 	}
 
-	@Override
-	public void contextInitialised() {
-		initialized = true;
-		validate(getAllEObjectsToValidate(context));
-	}
-
-	@Override
-	public void contextDispose() {
-		// do nothing
+	private void contextInitialised(EMFFormsViewContext context) {
+		if (context == rootContext) {
+			initialized = true;
+			validate(getAllEObjectsToValidate(rootContext));
+		}
 	}
 
 	/**
@@ -984,8 +1013,8 @@
 	 *         {@code null} otherwise
 	 */
 	protected ViewSubstitutionLabelProviderFactory getSubstitutionLabelProviderFactory() {
-		if (context.hasService(ViewSubstitutionLabelProviderFactory.class)) {
-			return context.getService(ViewSubstitutionLabelProviderFactory.class);
+		if (rootContext.hasService(ViewSubstitutionLabelProviderFactory.class)) {
+			return rootContext.getService(ViewSubstitutionLabelProviderFactory.class);
 		}
 		return null;
 	}
@@ -1002,7 +1031,7 @@
 	private int getPropagationThreshold() {
 		int result = -1; // Internal code for unlimited
 
-		final Object value = context.getContextValue(PROPAGATION_LIMIT_KEY);
+		final Object value = rootContext.getContextValue(PROPAGATION_LIMIT_KEY);
 		if (value instanceof Integer) {
 			final int intValue = (Integer) value;
 			if (intValue < 0) {
@@ -1030,4 +1059,47 @@
 		reportService.report(new AbstractReport(report, IStatus.WARNING));
 	}
 
+	/**
+	 * @since 1.22
+	 */
+	@Override
+	public void registerValidationUpdateListener(ValidationUpdateListener listener) {
+		validationUpdateListeners.add(listener);
+	}
+
+	/**
+	 * @since 1.22
+	 */
+	@Override
+	public void deregisterValidationUpdateListener(ValidationUpdateListener listener) {
+		validationUpdateListeners.remove(listener);
+	}
+
+	private void notifyUpdateListeners() {
+		if (validationUpdateListeners.isEmpty()) {
+			return;
+		}
+
+		// Build the validation state
+		final Collection<Diagnostic> diagnostics = Collections.unmodifiableCollection(
+			currentUpdates.entrySet().stream()
+				.map(entry -> summarize(entry.getKey(), entry.getValue()))
+				.collect(Collectors.toList()));
+
+		validationUpdateListeners.forEach(l -> l.validationUpdated(diagnostics));
+	}
+
+	private Diagnostic summarize(UniqueSetting setting, List<Diagnostic> diagnostics) {
+		switch (diagnostics.size()) {
+		case 0:
+			return new BasicDiagnostic(Diagnostic.OK, Activator.PLUGIN_ID, 0, Diagnostic.OK_INSTANCE.getMessage(),
+				new Object[] { setting.getEObject(), setting.getEStructuralFeature() });
+		case 1:
+			return diagnostics.get(0);
+		default:
+			return new BasicDiagnostic(Activator.PLUGIN_ID, 0, diagnostics, "", //$NON-NLS-1$
+				new Object[] { setting.getEObject(), setting.getEStructuralFeature() });
+		}
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/IncrementalValidationService.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/IncrementalValidationService.java
new file mode 100644
index 0000000..4db10b6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/IncrementalValidationService.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.validation;
+
+/**
+ * Optional mix-in interface for a {@link ValidationService} that supports
+ * reporting of {@linkplain ValidationUpdateListener incremental updates}.
+ *
+ * @since 1.22
+ */
+public interface IncrementalValidationService {
+
+	/**
+	 * Register a listener for incremental validation updates.
+	 *
+	 * @param listener the incremental validation listener
+	 */
+	void registerValidationUpdateListener(ValidationUpdateListener listener);
+
+	/**
+	 * De-register a listener for incremental validation updates.
+	 *
+	 * @param listener the incremental validation listener
+	 */
+	void deregisterValidationUpdateListener(ValidationUpdateListener listener);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationService.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationService.java
index 59ef0ea..86a3087 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationService.java
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationService.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 2.0
@@ -10,13 +10,21 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
+ * Christian W. Damus - bug 548761
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.validation;
 
 import java.util.Collection;
 
+import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider;
+import org.eclipse.emf.ecp.view.internal.validation.ECPSubstitutionLabelProvider;
+import org.eclipse.emf.ecp.view.internal.validation.ViewSubstitutionLabelProviderFactory;
 import org.eclipse.emf.ecp.view.spi.context.GlobalViewModelService;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
 
 /**
  * @author Eugen
@@ -83,4 +91,37 @@
 	 */
 	// TODO this should be refactored to use an iterator rather than a collection
 	void validate(Collection<EObject> eObjects);
+
+	/**
+	 * Obtain a substitution label provider suitable for rendering model elements as they
+	 * are presented in diagnostics produced by the {@link ValidationService}.
+	 *
+	 * @param context the view model context
+	 * @param adapterFactory an adapter factory to use to get item providers for model elements
+	 *
+	 * @return the substitution label provider
+	 *
+	 * @since 1.22
+	 */
+	static SubstitutionLabelProvider getSubstitutionLabelProvider(EMFFormsViewContext context,
+		AdapterFactory adapterFactory) {
+
+		SubstitutionLabelProvider result = null;
+
+		// FIXME: This should not have to be a ComposedAdapterFactory
+		if (adapterFactory instanceof ComposedAdapterFactory
+			&& context instanceof ViewModelContext
+			&& ((ViewModelContext) context).hasService(ViewSubstitutionLabelProviderFactory.class)) {
+
+			result = context.getService(ViewSubstitutionLabelProviderFactory.class)
+				.createSubstitutionLabelProvider((ComposedAdapterFactory) adapterFactory);
+		}
+
+		if (result == null) {
+			result = new ECPSubstitutionLabelProvider(adapterFactory);
+		}
+
+		return result;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationUpdateListener.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationUpdateListener.java
new file mode 100644
index 0000000..9fa5a6e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/spi/validation/ValidationUpdateListener.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.validation;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * An alternative validation listener that is most useful in applications that
+ * {@linkplain ValidationServiceConstants#PROPAGATION_LIMIT_KEY throttle problem reporting},
+ * to be notified of all problems found by validation, regardless of limits imposed by
+ * the presentation in the editor.
+ *
+ * @since 1.22
+ */
+public interface ValidationUpdateListener {
+
+	/**
+	 * <p>
+	 * Notifies the listener of updates to the model validation state.
+	 * This is an incremental update: it provides validation status of settings
+	 * in model objects, including results that explicitly indicate absence
+	 * of problems (indicating that problems previously reported are resolved).
+	 * Every diagnostic in the collection has at least two elements in the
+	 * {@link Diagnostic#getData() data} list, of which the first two are:
+	 * </p>
+	 * <p>
+	 * <ol>
+	 * <li>the {@link EObject} that owns the feature that was validated</li>
+	 * <li>the {@link EStructuralFeature} of the object that was validated</li>
+	 * </ol>
+	 * </p>
+	 * <p>
+	 * If any feature of any object that was previously reported as having
+	 * problems no longer has problems, then an {@link Diagnostic#OK} diagnostic
+	 * will be present for that setting. Otherwise, there may be one or more
+	 * problem diagnostics for that setting. In any case, if the validation
+	 * state of a setting is changed, then this collection contains the entire
+	 * current validation state of that setting.
+	 * </p>
+	 *
+	 * @param diagnostics the current validation problems in settings (features
+	 *            of objects) that were validated
+	 */
+	void validationUpdated(Collection<Diagnostic> diagnostics);
+
+	/**
+	 * Register a {@code listener} with the given validation service, if it supports it.
+	 *
+	 * @param validationService a validation service
+	 * @param listener the listener to register
+	 * @return {@code true} if the {@code listener} was registered; {@code false}, otherwise
+	 */
+	static boolean register(ValidationService validationService, ValidationUpdateListener listener) {
+		if (validationService instanceof IncrementalValidationService) {
+			((IncrementalValidationService) validationService).registerValidationUpdateListener(listener);
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * De-register a {@code listener} from the given validation service.
+	 *
+	 * @param validationService a validation service
+	 * @param listener the listener to deregister
+	 */
+	static void deregister(ValidationService validationService, ValidationUpdateListener listener) {
+		if (validationService instanceof IncrementalValidationService) {
+			((IncrementalValidationService) validationService).deregisterValidationUpdateListener(listener);
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e14c412..34e65cc 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 d2799ca..4749719 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9df0360..bb6df30 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.vertical.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.vertical.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.vertical.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.vertical.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 fcd313e..f3009de 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c28798e..a4fb5d6 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,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Vertical UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.ui.swt
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.vertical.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.vertical.swt;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.vertical.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.vertical.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
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 2b58f0b..361d626 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2a42747..845a829 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.viewproxy.model.provider;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.model.provider;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.viewproxy.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 d09710c..9d829b2 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 52c6d34..254db00 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.viewproxy.model;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.viewproxy.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.viewproxy.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.viewproxy.resolver;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.resolver;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.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 1864111..9752fbf 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.workspace.migrator/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.view.workspace.migrator/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.view.workspace.migrator/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.workspace.migrator/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 80887e1..c55a252 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.workspace.migrator;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.workspace.migrator;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.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 d11d7c1..a33ecbc 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.workspace.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.workspace.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.workspace.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9a9e7cc..ade3532 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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 8156c66..d7cc9c1 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui.rap/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.workspace.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 57c3c94..61726b7 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Workspace Integration UI RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.ui.rap;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.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)"
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 01bd0d6..5d1ee45 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.workspace.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 aafa68b..66de1cc 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Workspace Integration UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.11.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml b/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml
index 9dbbacb..6d7b2c4 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.rap.edit.ui.minimal/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emf.rap.edit.ui.minimal/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emf.rap.edit.ui.minimal/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 112d97d..a91d064 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.21.0.qualifier
+Bundle-Version: 1.22.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",
@@ -15,8 +15,8 @@
 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",
- org.eclipse.swt.dnd,
- org.eclipse.swt.events,
+ 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.widgets;version="0.0.0"
 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 61a532b..f354af0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.common.prevalidation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.common.prevalidation/.settings/org.eclipse.pde.api.tools.prefs
index cc2c025..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.common.prevalidation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.common.prevalidation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,7 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -87,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0898cc3..fee1942 100644
--- a/bundles/org.eclipse.emfforms.common.prevalidation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.common.prevalidation/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Pre-Set Validation
 Bundle-SymbolicName: org.eclipse.emfforms.common.prevalidation
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.common.prevalidation;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.common.prevalidation;version="1.22.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/PreSetValidationServiceImpl.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.common.prevalidation/pom.xml b/bundles/org.eclipse.emfforms.common.prevalidation/pom.xml
index 992185c..fbd8919 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.common.validation/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.common.validation/.settings/org.eclipse.pde.api.tools.prefs
index cc2c025..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.common.validation/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.common.validation/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,7 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -87,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ec6132e..b94289c 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.21.0";x-friends:="org.eclipse.emf.ecp.ide.migration,org.eclipse.emf.ecp.view.validation,org.eclipse.emf.ecp.ui.view.editor.controls",
- org.eclipse.emfforms.common.spi.validation;version="1.21.0",
- org.eclipse.emfforms.common.spi.validation.exception;version="1.21.0",
- org.eclipse.emfforms.common.spi.validation.filter;version="1.21.0"
+Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.22.0";x-friends:="org.eclipse.emf.ecp.ide.migration,org.eclipse.emf.ecp.view.validation,org.eclipse.emf.ecp.ui.view.editor.controls",
+ org.eclipse.emfforms.common.spi.validation;version="1.22.0",
+ org.eclipse.emfforms.common.spi.validation.exception;version="1.22.0",
+ org.eclipse.emfforms.common.spi.validation.filter;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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 5023415..800d5fb 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.api.tools.prefs
index cc2c025..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,7 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -87,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
index 0cbc39b..2e86400 100644
--- a/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
@@ -2,18 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Common
 Bundle-SymbolicName: org.eclipse.emfforms.common
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.common;version="1.21.0",
- org.eclipse.emfforms.internal.common;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.common.converter;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.common.report;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.common.converter;version="1.21.0",
- org.eclipse.emfforms.spi.common.locale;version="1.21.0",
- org.eclipse.emfforms.spi.common.report;version="1.21.0",
- org.eclipse.emfforms.spi.common.sort;version="1.21.0",
- org.eclipse.emfforms.spi.common.validation;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)"
+Export-Package: org.eclipse.emfforms.common;version="1.22.0",
+ org.eclipse.emfforms.internal.common;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.common.converter;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.common.report;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.common;version="1.22.0",
+ org.eclipse.emfforms.spi.common.converter;version="1.22.0",
+ org.eclipse.emfforms.spi.common.locale;version="1.22.0",
+ org.eclipse.emfforms.spi.common.report;version="1.22.0",
+ org.eclipse.emfforms.spi.common.sort;version="1.22.0",
+ org.eclipse.emfforms.spi.common.validation;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.0.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 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
diff --git a/bundles/org.eclipse.emfforms.common/pom.xml b/bundles/org.eclipse.emfforms.common/pom.xml
index 4e4276e..e8fbc51 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/common/TriConsumer.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/common/TriConsumer.java
new file mode 100644
index 0000000..2f72ba2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/common/TriConsumer.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.common;
+
+import java.util.Objects;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+
+/**
+ * Protocol for an action that accepts three inputs. This is the ternary variant of {@link Consumer}
+ * as {@link BiConsumer} is a binary variant of it.
+ *
+ * @param <T> the type of the first input
+ * @param <U> the type of the second input
+ * @param <V> the type of the third input
+ *
+ * @since 1.22
+ *
+ * @see TriFunction
+ * @see BiConsumer
+ * @see Consumer
+ */
+@FunctionalInterface
+public interface TriConsumer<T, U, V> {
+
+	/**
+	 * Accept the inputs and operate on them.
+	 *
+	 * @param t the first input
+	 * @param u the second input
+	 * @param v the third input
+	 */
+	void accept(T t, U u, V v);
+
+	/**
+	 * Obtain a composed {@code TriConsumer} that performs me followed by an
+	 * {@code after} operation. If the {@code after} consumer throws, then
+	 * that exception is propagated to the caller. If I throw, then likewise
+	 * but also the {@code after} consumer will not be invoked.
+	 *
+	 * @param after a consumer to invoke after me. Must not be {@code null}
+	 * @return the composition of myself with the {@code after} consumer
+	 *
+	 * @throws NullPointerException if {@code after} is {@code null}
+	 */
+	default TriConsumer<T, U, V> andThen(TriConsumer<? super T, ? super U, ? super V> after) {
+		final TriConsumer<? super T, ? super U, ? super V> next = Objects.requireNonNull(after);
+
+		return (t, u, v) -> {
+			this.accept(t, u, v);
+			next.accept(t, u, v);
+		};
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolverImpl.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/internal/common/BundleResolverImpl.java
similarity index 88%
rename from bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolverImpl.java
rename to bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/internal/common/BundleResolverImpl.java
index 67b3936..0ca99c7 100644
--- a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolverImpl.java
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/internal/common/BundleResolverImpl.java
@@ -11,13 +11,14 @@
  * Contributors:
  * Eugen Neufeld - initial API and implementation
  ******************************************************************************/
-package org.eclipse.emfforms.internal.core.services.label;
+package org.eclipse.emfforms.internal.common;
 
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emfforms.spi.common.BundleResolver;
 import org.osgi.framework.Bundle;
 
 /**
@@ -27,11 +28,6 @@
  */
 public class BundleResolverImpl implements BundleResolver {
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.internal.core.services.label.BundleResolver#getEditBundle(org.eclipse.emf.ecore.EClassifier)
-	 */
 	@Override
 	public Bundle getEditBundle(EClassifier eClassifier) throws NoBundleFoundException {
 		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolver.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/BundleResolver.java
similarity index 95%
rename from bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolver.java
rename to bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/BundleResolver.java
index d766669..3816181 100644
--- a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolver.java
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/BundleResolver.java
@@ -11,7 +11,7 @@
  * Contributors:
  * Eugen Neufeld - initial API and implementation
  ******************************************************************************/
-package org.eclipse.emfforms.internal.core.services.label;
+package org.eclipse.emfforms.spi.common;
 
 import org.eclipse.emf.ecore.EClassifier;
 import org.osgi.framework.Bundle;
@@ -20,6 +20,7 @@
  * Class to resolve an EClassifier to a Bundle.
  *
  * @author Eugen Neufeld
+ * @since 1.22
  *
  */
 public interface BundleResolver {
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/BundleResolverFactory.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/BundleResolverFactory.java
new file mode 100644
index 0000000..e9ad14e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/BundleResolverFactory.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.common;
+
+import org.eclipse.emfforms.internal.common.BundleResolverImpl;
+
+/**
+ * Factory to create a {@link BundleResolver}.
+ * 
+ * @author Lucas Koehler
+ * @since 1.22
+ */
+public final class BundleResolverFactory {
+
+	private BundleResolverFactory() {
+		// has only static methods
+	}
+
+	/**
+	 * Creates a new {@link BundleResolver}.
+	 *
+	 * @return the create {@link BundleResolver} instance
+	 */
+	public static BundleResolver createBundleResolver() {
+		return new BundleResolverImpl();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/validation/DiagnosticFrequencyMap.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/validation/DiagnosticFrequencyMap.java
index f67e7ab..c1fcba0 100644
--- a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/validation/DiagnosticFrequencyMap.java
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/validation/DiagnosticFrequencyMap.java
@@ -265,7 +265,9 @@
 				}
 				break;
 			default:
-				// We don't track OK diagnostics at all
+				// We don't track OK diagnostics at all, but we don't need to
+				// tell anyone that
+				result = true;
 				break;
 			}
 
diff --git a/bundles/org.eclipse.emfforms.core.bazaar/.project b/bundles/org.eclipse.emfforms.core.bazaar/.project
index 0ff4eef..2fbd999 100644
--- a/bundles/org.eclipse.emfforms.core.bazaar/.project
+++ b/bundles/org.eclipse.emfforms.core.bazaar/.project
@@ -35,6 +35,5 @@
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emfforms.core.bazaar/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.bazaar/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.bazaar/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.bazaar/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3593ea0..b3e6157 100644
--- a/bundles/org.eclipse.emfforms.core.bazaar/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.bazaar/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Bazaar
 Bundle-SymbolicName: org.eclipse.emfforms.core.bazaar
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.bazaar;version="1.21.0",
- org.eclipse.emfforms.bazaar.internal;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.bazaar;version="1.21.0"
+Export-Package: org.eclipse.emfforms.bazaar;version="1.22.0",
+ org.eclipse.emfforms.bazaar.internal;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.bazaar;version="1.22.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.bazaar
 Import-Package: javax.inject;version="1.0.0",
diff --git a/bundles/org.eclipse.emfforms.core.bazaar/pom.xml b/bundles/org.eclipse.emfforms.core.bazaar/pom.xml
index da957e1..47c650d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.bazaar/src/org/eclipse/emfforms/bazaar/internal/BazaarImpl.java b/bundles/org.eclipse.emfforms.core.bazaar/src/org/eclipse/emfforms/bazaar/internal/BazaarImpl.java
index 593832b..214a474 100644
--- a/bundles/org.eclipse.emfforms.core.bazaar/src/org/eclipse/emfforms/bazaar/internal/BazaarImpl.java
+++ b/bundles/org.eclipse.emfforms.core.bazaar/src/org/eclipse/emfforms/bazaar/internal/BazaarImpl.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * jonas - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.bazaar.internal;
 
@@ -115,17 +116,28 @@
 	}
 
 	/**
-	 * Creates an {@link IEclipseContext} from a {@link BazaarContext}.
+	 * Creates an {@link IEclipseContext} from a {@link BazaarContext}. If the
+	 * bazaar context contains an Eclipse context, then it is used and will have
+	 * all other values set into it from the bazaar context.
 	 *
 	 * @param bazaarContext the {@link BazaarContext} to get key / values from
 	 * @return a {@link IEclipseContext} containign all key / values provided by the {@link BazaarContext}
 	 */
 	public IEclipseContext createEclipseContext(BazaarContext bazaarContext) {
-		final IEclipseContext context = EclipseContextFactory.create();
+		final Map<String, Object> contextMap = bazaarContext.getContextMap();
+
+		// Let the client inject its own e4 context
+		final String contextKey = IEclipseContext.class.getName();
+		final IEclipseContext context = (IEclipseContext) contextMap.getOrDefault(contextKey,
+			EclipseContextFactory.create());
+
 		final Set<String> keySet = bazaarContext.getContextMap().keySet();
 		for (final String string : keySet) {
-			context.set(string, bazaarContext.getContextMap().get(string));
+			if (!contextKey.equals(string)) { // Don't put the context into itself
+				context.set(string, contextMap.get(string));
+			}
 		}
+
 		return context;
 	}
 
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ce039cf..62ac8ae 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 2c9ccd4..29c9d18 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 70fd986..37a51ba 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding.index;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.index;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 acb5ffe..e83c2f5 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f21ccc9..4f24adb 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 d82023e..a6fc913 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e46c71a..583afa8 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 d1b810d..3a0266d 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.datatemplate/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8cde901..174df7f 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,23 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Service
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.datatemplate;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.core.services.datatemplate;version="1.21.0",
- org.eclipse.emfforms.internal.core.services.datatemplate;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.datatemplate;version="1.22.0",
+ org.eclipse.emfforms.internal.core.services.datatemplate;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.datatemplate.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.bazaar;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.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",
+Import-Package: javax.inject;version="1.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",
diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/pom.xml b/bundles/org.eclipse.emfforms.core.services.datatemplate/pom.xml
index 74a4e09..a490df3 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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/BlankTemplateProvider.java b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider.java
index 5f820b7..432d155 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider.java
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider.java
@@ -31,9 +31,9 @@
 import org.eclipse.emfforms.core.services.datatemplate.TemplateProvider;
 import org.eclipse.emfforms.datatemplate.DataTemplateFactory;
 import org.eclipse.emfforms.datatemplate.Template;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolverImpl;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.osgi.util.NLS;
 import org.osgi.framework.Bundle;
@@ -47,7 +47,6 @@
  * @author Lucas Koehler
  *
  */
-@SuppressWarnings("restriction")
 @Component(name = "BlankTemplateProvider")
 public class BlankTemplateProvider implements TemplateProvider {
 	private BundleResolver bundleResolver;
@@ -59,7 +58,7 @@
 	 * Creates a new {@link BlankTemplateProvider} instance.
 	 */
 	public BlankTemplateProvider() {
-		setBundleResolver(new BundleResolverImpl());
+		setBundleResolver(BundleResolverFactory.createBundleResolver());
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/EClassLabelProvider.java b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/EClassLabelProvider.java
index b62b461..4c4af1a 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/EClassLabelProvider.java
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/EClassLabelProvider.java
@@ -18,9 +18,9 @@
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolverImpl;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.ILabelProviderListener;
@@ -32,7 +32,6 @@
  * are in the Ecore model editor, but instead using their EMF.Edit localized names
  * and icons.
  */
-@SuppressWarnings("restriction") // for BundleResolver API
 final class EClassLabelProvider implements ILabelProvider {
 	private final EMFFormsLocalizationService l10nService;
 	private final BundleResolver bundleResolver;
@@ -47,7 +46,7 @@
 		super();
 
 		this.l10nService = l10nService;
-		bundleResolver = new BundleResolverImpl();
+		bundleResolver = BundleResolverFactory.createBundleResolver();
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard.java b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard.java
index a5e8d97..6b6b459 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard.java
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard.java
@@ -26,13 +26,14 @@
 import org.eclipse.emfforms.datatemplate.Template;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Composite;
 
@@ -80,11 +81,6 @@
 		allTemplates = templates;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
 	@Override
 	public boolean performFinish() {
 		finished = true;
@@ -228,16 +224,33 @@
 				final TreeViewer tv = (TreeViewer) getSelectionComposite().getViewer();
 				tv.expandToLevel(2);
 			}
-			getSelectionComposite().getViewer().addSelectionChangedListener(getSelectionChangedListener());
+			getSelectionComposite().getViewer().addSelectionChangedListener(this::handleSelectionChanged);
+			getSelectionComposite().getViewer().addDoubleClickListener(this::handleDoubleClick);
 			setPageComplete(false);
 			setControl(composite);
 
 		}
 
 		/**
-		 * @return The selection listener that is called when the selection composite's selection changes
+		 * Handle double click in the selection composite viewer. If the selection triggered by the double click allows
+		 * to flip to the next page or finish the wizard, automatically do this.
+		 *
+		 * @param event The double click event
 		 */
-		protected abstract ISelectionChangedListener getSelectionChangedListener();
+		protected void handleDoubleClick(DoubleClickEvent event) {
+			if (canFlipToNextPage()) {
+				getContainer().showPage(getNextPage());
+			} else if (canFinish() && performFinish()) {
+				((WizardDialog) getContainer()).close();
+			}
+		}
+
+		/**
+		 * Handles the composite's selection changes.
+		 *
+		 * @param event The {@link SelectionChangedEvent}
+		 */
+		protected abstract void handleSelectionChanged(SelectionChangedEvent event);
 
 		/**
 		 * @return The {@link SelectionComposite} that provides the selection viewer
@@ -286,26 +299,20 @@
 		}
 
 		@Override
-		protected ISelectionChangedListener getSelectionChangedListener() {
-			return new ISelectionChangedListener() {
+		public void handleSelectionChanged(SelectionChangedEvent event) {
+			final IStructuredSelection sel = (IStructuredSelection) getSelectionComposite().getViewer()
+				.getSelection();
 
-				@Override
-				public void selectionChanged(SelectionChangedEvent event) {
-					final IStructuredSelection sel = (IStructuredSelection) getSelectionComposite().getViewer()
-						.getSelection();
-
-					if (sel != null && !sel.isEmpty() && EClass.class.isInstance(sel.getFirstElement())) {
-						setErrorMessage(null);
-						setSubClass((EClass) sel.getFirstElement());
-						setPageComplete(true);
-					} else {
-						setErrorMessage(localizationService.getString(SelectSubclassAndTemplateWizard.class,
-							MessageKeys.SelectSubclassAndTemplateWizard_selectEClass));
-						setSubClass(null);
-						setPageComplete(false);
-					}
-				}
-			};
+			if (sel != null && !sel.isEmpty() && EClass.class.isInstance(sel.getFirstElement())) {
+				setErrorMessage(null);
+				setSubClass((EClass) sel.getFirstElement());
+				setPageComplete(true);
+			} else {
+				setErrorMessage(localizationService.getString(SelectSubclassAndTemplateWizard.class,
+					MessageKeys.SelectSubclassAndTemplateWizard_selectEClass));
+				setSubClass(null);
+				setPageComplete(false);
+			}
 		}
 	}
 
@@ -349,21 +356,15 @@
 		}
 
 		@Override
-		protected ISelectionChangedListener getSelectionChangedListener() {
-			return new ISelectionChangedListener() {
+		public void handleSelectionChanged(SelectionChangedEvent event) {
+			final IStructuredSelection sel = (IStructuredSelection) getSelectionComposite().getViewer()
+				.getSelection();
 
-				@Override
-				public void selectionChanged(SelectionChangedEvent event) {
-					final IStructuredSelection sel = (IStructuredSelection) getSelectionComposite().getViewer()
-						.getSelection();
-
-					if (sel != null && !sel.isEmpty()) {
-						setPageComplete(true);
-					} else {
-						setPageComplete(false);
-					}
-				}
-			};
+			if (sel != null && !sel.isEmpty()) {
+				setPageComplete(true);
+			} else {
+				setPageComplete(false);
+			}
 		}
 	}
 }
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.default/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.domainexpander.default/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.default/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.default/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 76d7c59..f96f9fc 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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 c7872a4..7b4e4a7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.index/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.domainexpander.index/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.index/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.index/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 fa38ee7..bfbbdd9 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.index
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsIndexDMRExpander.xml
 Bundle-ActivationPolicy: lazy
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 6904398..8adba2d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4068cfe..56b5856 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: KeyAttribute DMR Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.keyattribute
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsKeyAttributeDMRExpander.xml
 Bundle-ActivationPolicy: lazy
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 7c9b505..832909a 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3aa585a..f2dbe06 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.mapping
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsMappingDMRExpander.xml
 Bundle-ActivationPolicy: lazy
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 11a4ae7..8946c46 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.table/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.domainexpander.table/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.table/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.table/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c5043f2..629505f 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms TableControl Domain Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.table
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.table;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.table;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsTableDMRExpander.xml
 Bundle-ActivationPolicy: lazy
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 1e74a31..df9952f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 940aa5a..6c9a126 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.editsupport;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.editsupport;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.core.services.editsupport;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.editsupport;version="1.22.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.localization;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.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 9aa22ef..f90eb50 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

   

   <properties>

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

diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/internal/core/services/editsupport/EMFFormsEditSupportImpl.java b/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/internal/core/services/editsupport/EMFFormsEditSupportImpl.java
index d600f13..78fe6c1 100644
--- a/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/internal/core/services/editsupport/EMFFormsEditSupportImpl.java
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/internal/core/services/editsupport/EMFFormsEditSupportImpl.java
@@ -25,9 +25,9 @@
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolverImpl;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
@@ -44,12 +44,11 @@
  * @author Lucas Koehler
  *
  */
-@SuppressWarnings("restriction")
 public class EMFFormsEditSupportImpl implements EMFFormsEditSupport {
 	private EMFFormsDatabinding emfFormsDatabinding;
 	private EMFSpecificService emfSpecificService;
 	private ReportService reportService;
-	private final BundleResolver bundleResolver = new BundleResolverImpl();
+	private final BundleResolver bundleResolver = BundleResolverFactory.createBundleResolver();
 	private EMFFormsLocalizationService emfFormsLocalizationService;
 
 	/**
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0a0db20..126306e 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,15 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services EMF
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.emf
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.label;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.label;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/emfLabelProvider.xml, OSGI-INF/emfLabelProviderDefault.xml, OSGI-INF/databindingService.xml
 Bundle-ActivationPolicy: lazy
@@ -19,14 +20,14 @@
  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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.locale;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.emfspecificservice;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.label;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.localization;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.emfspecificservice;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.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 b0b10ad..e668ec5 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl.java b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl.java
index 7e6a9b0..0ac68d1 100644
--- a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl.java
+++ b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl.java
@@ -26,7 +26,9 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.common.spi.asserts.Assert;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolverFactory;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
@@ -135,7 +137,7 @@
 	private EMFFormsDatabindingEMF emfFormsDatabinding;
 	private EMFFormsLocalizationService localizationService;
 	private ReportService reportService;
-	private BundleResolver bundleResolver = new BundleResolverImpl();
+	private BundleResolver bundleResolver = BundleResolverFactory.createBundleResolver();
 
 	private final Map<WritableValue, BundleKeyWrapper> displayKeyObservableMap = new WeakHashMap<WritableValue, BundleKeyWrapper>();
 	private final Map<WritableValue, DescriptionKey> descriptionKeyObservableMap = new WeakHashMap<WritableValue, DescriptionKey>();
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2ad9f41..55254d5 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,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms EMF Specific Service
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.emfspecificservice
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.emfspecificservice;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.emfspecificservice;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.core.services.emfspecificservice;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.emfspecificservice;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.emfspecificservice
 Service-Component: OSGI-INF/emfSpecificService.xml
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml
index 57ce3a8..4795b5a 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.legacy/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.legacy/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.legacy/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.legacy/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 75e1a73..1b24eb2 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.legacy;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.core.services.legacy;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.spi.model;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.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 dd29c15..512b507 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2d2cdd5..1a0bb52 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.locale.defaultlocale;version="1.21.0"
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.locale.defaultlocale;version="1.22.0"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.22.0,1.23.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 bb2024e..70de8b2 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3d3cb2d..989900d 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 2ac481e..3018542 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bd51ccb..fb5f6d0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.view.spi.provider;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.22.0,1.23.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 57ec588..3a2d204 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9f5fb1b..0bc8db4 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.view.spi.provider;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 7a1413b..19fc992 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0868267..5c2472e 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,17 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Core Services for Featurepath Segments
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.featurepath
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.21.0";x-friends:="org.eclipse.emfforms.core.services.segments.multi"
-Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.22.0";x-friends:="org.eclipse.emfforms.core.services.segments.multi,org.eclipse.emfforms.core.services.segments.index"
+Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/FeatureSegmentExpander.xml,OSGI-INF/FeatureSegmentConverter.xml,OSGI-INF/FeatureSegmentStructuralChangeTester.xml,OSGI-INF/FeaturePathDmrSegmentGenerator.xml
+Service-Component: OSGI-INF/FeatureSegmentExpander.xml,
+ OSGI-INF/FeatureSegmentConverter.xml,
+ OSGI-INF/FeatureSegmentStructuralChangeTester.xml,
+ OSGI-INF/FeaturePathDmrSegmentGenerator.xml,
+ OSGI-INF/FeatureDmrToRootEClassConverter.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/OSGI-INF/FeatureDmrToRootEClassConverter.xml b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/OSGI-INF/FeatureDmrToRootEClassConverter.xml
new file mode 100644
index 0000000..a69363d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/OSGI-INF/FeatureDmrToRootEClassConverter.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="FeatureDmrToRootEClassConverter">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureDmrToRootEClassConverter"/>
+</scr:component>
\ No newline at end of file
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 b45d0d4..c4b6ac4 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/src/org/eclipse/emfforms/internal/core/services/segments/featurepath/FeatureDmrToRootEClassConverter.java b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/src/org/eclipse/emfforms/internal/core/services/segments/featurepath/FeatureDmrToRootEClassConverter.java
new file mode 100644
index 0000000..39ed8a4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/src/org/eclipse/emfforms/internal/core/services/segments/featurepath/FeatureDmrToRootEClassConverter.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments.featurepath;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * {@link DmrToRootEClassConverter} for {@link VFeaturePathDomainModelReference}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@Component(name = "FeatureDmrToRootEClassConverter")
+public class FeatureDmrToRootEClassConverter implements DmrToRootEClassConverter {
+
+	@Override
+	public double isApplicable(VDomainModelReference dmr) {
+		if (dmr instanceof VFeaturePathDomainModelReference) {
+			return 1d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	@Override
+	public EClass getRootEClass(VDomainModelReference dmr) {
+		final VFeaturePathDomainModelReference featureDmr = (VFeaturePathDomainModelReference) dmr;
+		if (featureDmr.getDomainModelEFeature() == null) {
+			throw new IllegalArgumentException(
+				String.format("The DMR %s has no domain model feature.", featureDmr)); //$NON-NLS-1$
+		}
+		return featureDmr.getDomainModelEReferencePath().isEmpty()
+			? featureDmr.getDomainModelEFeature().getEContainingClass()
+			: featureDmr.getDomainModelEReferencePath().get(0).getEContainingClass();
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.index/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.segments.index/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.index/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.segments.index/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e431a15..57b18ea 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,22 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Core Services for Index Segments
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.index
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.index;version="1.21.0";x-friends:="org.eclipse.emfforms.core.services.databinding.index"
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.index;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/IndexSegmentConverter.xml,OSGI-INF/IndexSegmentExpander.xml,OSGI-INF/IndexSegmentStructuralChangeTester.xml,OSGI-INF/IndexDmrSegmentGenerator.xml
+Service-Component: OSGI-INF/IndexSegmentConverter.xml,
+ OSGI-INF/IndexSegmentExpander.xml,
+ OSGI-INF/IndexSegmentStructuralChangeTester.xml,
+ OSGI-INF/IndexDmrSegmentGenerator.xml,
+ OSGI-INF/IndexDmrToRootEClassConverter.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/OSGI-INF/IndexDmrToRootEClassConverter.xml b/bundles/org.eclipse.emfforms.core.services.segments.index/OSGI-INF/IndexDmrToRootEClassConverter.xml
new file mode 100644
index 0000000..9561a3a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments.index/OSGI-INF/IndexDmrToRootEClassConverter.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" deactivate="dispose" name="IndexDmrToRootEClassConverter">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.core.services.segments.index.IndexDmrToRootEClassConverter"/>
+</scr:component>
\ No newline at end of file
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 d8b7199..3f431ab 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.index/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexDmrToRootEClassConverter.java b/bundles/org.eclipse.emfforms.core.services.segments.index/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexDmrToRootEClassConverter.java
new file mode 100644
index 0000000..b70072b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments.index/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexDmrToRootEClassConverter.java
@@ -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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments.index;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureDmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+
+/**
+ * {@link DmrToRootEClassConverter} for {@link VIndexDomainModelReference}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@Component(name = "IndexDmrToRootEClassConverter", service = DmrToRootEClassConverter.class)
+public class IndexDmrToRootEClassConverter extends FeatureDmrToRootEClassConverter {
+	private LegacyDmrToRootEClass dmrToRootEClass;
+	private ServiceReference<LegacyDmrToRootEClass> dmrToRootEClassServiceRef;
+
+	@Override
+	public double isApplicable(VDomainModelReference dmr) {
+		if (dmr instanceof VIndexDomainModelReference) {
+			return 3d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	@Override
+	public EClass getRootEClass(VDomainModelReference dmr) {
+		final VIndexDomainModelReference indexDmr = (VIndexDomainModelReference) dmr;
+		if (indexDmr.getPrefixDMR() == null) {
+			return super.getRootEClass(dmr);
+		}
+
+		return getLegacyDmrToRootEClass().getRootEClass(indexDmr.getPrefixDMR())
+			.orElseThrow(() -> new IllegalArgumentException(
+				"Could not determine root EClass of the index dmrs prefix dmr: " + indexDmr.getPrefixDMR())); //$NON-NLS-1$
+	}
+
+	/** Ungets manually retrieved LegacyDmrToRootEClass. */
+	@Deactivate
+	public void dispose() {
+		dmrToRootEClass = null;
+		if (dmrToRootEClassServiceRef != null) {
+			FrameworkUtil.getBundle(IndexDmrToRootEClassConverter.class).getBundleContext()
+				.ungetService(dmrToRootEClassServiceRef);
+			dmrToRootEClassServiceRef = null;
+		}
+	}
+
+	// Lazily get the LegacyDmrToRootEClass to avoid circular dependency during service creation
+	private LegacyDmrToRootEClass getLegacyDmrToRootEClass() {
+		if (dmrToRootEClass == null) {
+			final BundleContext bundleContext = FrameworkUtil.getBundle(IndexDmrToRootEClassConverter.class)
+				.getBundleContext();
+			dmrToRootEClassServiceRef = bundleContext.getServiceReference(LegacyDmrToRootEClass.class);
+			dmrToRootEClass = bundleContext.getService(dmrToRootEClassServiceRef);
+		}
+		return dmrToRootEClass;
+	}
+
+	/**
+	 * Sets the {@link LegacyDmrToRootEClass}. Package visibility for testing.
+	 *
+	 * @param dmrToRootEClass The {@link LegacyDmrToRootEClass} to use
+	 */
+	void setLegacyDmrToRootEClass(LegacyDmrToRootEClass dmrToRootEClass) {
+		this.dmrToRootEClass = dmrToRootEClass;
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.mapping/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.segments.mapping/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.mapping/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.segments.mapping/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 97d8ee1..cc6093a 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Mapping Segment Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.mapping
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.21.0";x-friends:="org.eclipse.emfforms.core.services.databinding.mapping"
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/MappingSegmentConverter.xml,OSGI-INF/MappingSegmentExpander.xml,OSGI-INF/MappingSegmentStructuralChangeTester.xml,OSGI-INF/MappingDmrSegmentGenerator.xml
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 7338ca7..b3407f7 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.multi/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.segments.multi/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.multi/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.segments.multi/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e051caf..a7b72c8 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,21 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Multi Segment Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.multi
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.multi;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.multi;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="3.13.0",
- org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/EMFFormsMappingProviderMulti.xml,OSGI-INF/MultiSegmentConverter.xml,OSGI-INF/MultiSegmentExpander.xml,OSGI-INF/TableDmrSegmentGenerator.xml
+Service-Component: OSGI-INF/EMFFormsMappingProviderMulti.xml,
+ OSGI-INF/MultiSegmentConverter.xml,
+ OSGI-INF/MultiSegmentExpander.xml,
+ OSGI-INF/TableDmrSegmentGenerator.xml,
+ OSGI-INF/TableDmrToRootEClassConverter.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/OSGI-INF/TableDmrToRootEClassConverter.xml b/bundles/org.eclipse.emfforms.core.services.segments.multi/OSGI-INF/TableDmrToRootEClassConverter.xml
new file mode 100644
index 0000000..cec3eff
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments.multi/OSGI-INF/TableDmrToRootEClassConverter.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" deactivate="dispose" name="TableDmrToRootEClassConverter">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.core.services.segments.multi.TableDmrToRootEClassConverter"/>
+</scr:component>
\ No newline at end of file
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 f6bc55c..25d6a93 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator.java b/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator.java
index 4402c97..08a9432 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator.java
+++ b/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator.java
@@ -128,12 +128,16 @@
 			return result;
 		}
 
-		// Convert the last segment to a multi segment and add all column dmrs as child dmrs.
+		// Convert the last segment to a multi segment and generate a child dmr for every column dmr.
 		final VMultiDomainModelReferenceSegment multiSegment = VMultisegmentFactory.eINSTANCE
 			.createMultiDomainModelReferenceSegment();
 		multiSegment
 			.setDomainModelFeature(VFeatureDomainModelReferenceSegment.class.cast(lastSegment).getDomainModelFeature());
-		multiSegment.getChildDomainModelReferences().addAll(tableDmr.getColumnDomainModelReferences());
+		for (final VDomainModelReference columnDmr : tableDmr.getColumnDomainModelReferences()) {
+			final VDomainModelReference childDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+			childDmr.getSegments().addAll(getEMFFormsSegmentGenerator().generateSegments(columnDmr));
+			multiSegment.getChildDomainModelReferences().add(childDmr);
+		}
 
 		// Build the result by using the generated segments for the path and the multi segment as the final segment.
 		for (int i = 0; i < subDmrSegments.size() - 1; i++) {
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrToRootEClassConverter.java b/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrToRootEClassConverter.java
new file mode 100644
index 0000000..79cba68
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments.multi/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrToRootEClassConverter.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments.multi;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureDmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+
+/**
+ * Converts a {@link VTableDomainModelReference} to its root EClass.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@Component(name = "TableDmrToRootEClassConverter", service = DmrToRootEClassConverter.class)
+public class TableDmrToRootEClassConverter extends FeatureDmrToRootEClassConverter {
+
+	private LegacyDmrToRootEClass dmrToRootEClass;
+	private ServiceReference<LegacyDmrToRootEClass> dmrToRootEClassServiceRef;
+
+	@Override
+	public double isApplicable(VDomainModelReference dmr) {
+		if (dmr instanceof VTableDomainModelReference) {
+			return 3d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	@Override
+	public EClass getRootEClass(VDomainModelReference dmr) throws IllegalArgumentException {
+		final VTableDomainModelReference tableDmr = (VTableDomainModelReference) dmr;
+		if (tableDmr.getDomainModelReference() == null) {
+			return super.getRootEClass(dmr);
+		}
+
+		return getLegacyDmrToRootEClass().getRootEClass(tableDmr.getDomainModelReference())
+			.orElseThrow(() -> new IllegalArgumentException(
+				"Could not determine root EClass of the table dmr's dmr: " + tableDmr.getDomainModelReference())); //$NON-NLS-1$
+	}
+
+	/** Ungets manually retrieved LegacyDmrToRootEClass. */
+	@Deactivate
+	public void dispose() {
+		dmrToRootEClass = null;
+		if (dmrToRootEClassServiceRef != null) {
+			FrameworkUtil.getBundle(TableDmrToRootEClassConverter.class).getBundleContext()
+				.ungetService(dmrToRootEClassServiceRef);
+			dmrToRootEClassServiceRef = null;
+		}
+	}
+
+	// Lazily get the LegacyDmrToRootEClass to avoid circular dependency during service creation
+	private LegacyDmrToRootEClass getLegacyDmrToRootEClass() {
+		if (dmrToRootEClass == null) {
+			final BundleContext bundleContext = FrameworkUtil.getBundle(TableDmrToRootEClassConverter.class)
+				.getBundleContext();
+			dmrToRootEClassServiceRef = bundleContext.getServiceReference(LegacyDmrToRootEClass.class);
+			dmrToRootEClass = bundleContext.getService(dmrToRootEClassServiceRef);
+		}
+		return dmrToRootEClass;
+	}
+
+	/**
+	 * Sets the {@link LegacyDmrToRootEClass}. Package visibility for testing.
+	 *
+	 * @param dmrToRootEClass The {@link LegacyDmrToRootEClass} to use
+	 */
+	void setLegacyDmrToRootEClass(LegacyDmrToRootEClass dmrToRootEClass) {
+		this.dmrToRootEClass = dmrToRootEClass;
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.segments/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.segments/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 24a8d87..992a1ff 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,15 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Services for DMR Segments
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.segments;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.segments;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.segments;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.segments;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/SegmentGeneratorService.xml,OSGI-INF/DmrToSegmentsViewServiceFactory.xml
+Service-Component: OSGI-INF/SegmentGeneratorService.xml,
+ OSGI-INF/DmrToSegmentsViewServiceFactory.xml,
+ OSGI-INF/LegacyDmrToRootEClassImpl.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/OSGI-INF/LegacyDmrToRootEClassImpl.xml b/bundles/org.eclipse.emfforms.core.services.segments/OSGI-INF/LegacyDmrToRootEClassImpl.xml
new file mode 100644
index 0000000..9fd2bc1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments/OSGI-INF/LegacyDmrToRootEClassImpl.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="LegacyDmrToRootEClassImpl">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass"/>
+   </service>
+   <reference bind="addDmrToRootEClassConverter" cardinality="0..n" interface="org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter" name="DmrToRootEClassConverter" unbind="removeDmrToRootEClassConverter"/>
+   <reference bind="setReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
+   <implementation class="org.eclipse.emfforms.internal.core.services.segments.LegacyDmrToRootEClassImpl"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/pom.xml b/bundles/org.eclipse.emfforms.core.services.segments/pom.xml
index fce0bcf..311b3ee 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/internal/core/services/segments/LegacyDmrToRootEClassImpl.java b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/internal/core/services/segments/LegacyDmrToRootEClassImpl.java
new file mode 100644
index 0000000..94e1fc7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/internal/core/services/segments/LegacyDmrToRootEClassImpl.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments;
+
+import java.text.MessageFormat;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Optional;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.common.RankingHelper;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+
+/**
+ * Default implementation of {@link LegacyDmrToRootEClass}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@Component(name = "LegacyDmrToRootEClassImpl")
+public class LegacyDmrToRootEClassImpl implements LegacyDmrToRootEClass {
+
+	private static final RankingHelper<DmrToRootEClassConverter> RANKING_HELPER = new RankingHelper<>(
+		DmrToRootEClassConverter.class,
+		DmrToRootEClassConverter.NOT_APPLICABLE,
+		DmrToRootEClassConverter.NOT_APPLICABLE);
+
+	private final List<DmrToRootEClassConverter> converters = new LinkedList<>();
+	private ReportService reportService;
+
+	/**
+	 * Adds a {@link DmrToRootEClassConverter}.
+	 *
+	 * @param converter The {@link DmrToRootEClassConverter}
+	 */
+	@Reference(cardinality = ReferenceCardinality.MULTIPLE)
+	void addDmrToRootEClassConverter(DmrToRootEClassConverter converter) {
+		converters.add(converter);
+	}
+
+	/**
+	 * Removes a {@link DmrToRootEClassConverter}.
+	 *
+	 * @param converter The {@link DmrToRootEClassConverter}
+	 */
+	void removeDmrToRootEClassConverter(DmrToRootEClassConverter converter) {
+		converters.remove(converter);
+	}
+
+	/**
+	 * Sets the {@link ReportService}.
+	 *
+	 * @param reportService The {@link ReportService} to report problems during root EClass resolvement
+	 */
+	@Reference(unbind = "-")
+	void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	@Override
+	public Optional<EClass> getRootEClass(VDomainModelReference dmr) {
+		final DmrToRootEClassConverter bestConverter = RANKING_HELPER.getHighestRankingElement(converters,
+			converter -> converter.isApplicable(dmr));
+		if (bestConverter != null) {
+			try {
+				return Optional.of(bestConverter.getRootEClass(dmr));
+			} catch (final IllegalArgumentException ex) {
+				reportService.report(new AbstractReport(ex, "Could not determine root EClass due to an exception.")); //$NON-NLS-1$
+			}
+		} else {
+			reportService.report(new AbstractReport(MessageFormat.format(
+				"Could not get root EClass for DMR ''{0}'' because there was no applicable DmrToRootEClassConverter.", //$NON-NLS-1$
+				dmr), IStatus.WARNING));
+		}
+		return Optional.empty();
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrSegmentGenerator.java b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrSegmentGenerator.java
index ec40196..0a1b0a4 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrSegmentGenerator.java
+++ b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrSegmentGenerator.java
@@ -46,6 +46,9 @@
 	 * Takes a {@link VDomainModelReference} and generates the list of equivalent {@link VDomainModelReferenceSegment
 	 * DMR Segments}. Equivalent means that a DMR using the generated segments resolves exactly the same as the given
 	 * DMR.
+	 * <p>
+	 * The segment generation is <strong>side-effect free</strong>. This means neither the given DMR nor any of its
+	 * contained or referenced elements is changed.
 	 *
 	 * @param reference The {@link VDomainModelReference} to generate the {@link VDomainModelReferenceSegment
 	 *            segments} for
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrToRootEClassConverter.java b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrToRootEClassConverter.java
new file mode 100644
index 0000000..d48481a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/DmrToRootEClassConverter.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.segments;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * Determines the root {@link EClass} for a subset of legacy domain model references. Do not use this directly, use
+ * {@link LegacyDmrToRootEClass} instead.
+ *
+ * @author Lucas Koehler
+ * @since 1.22
+ */
+public interface DmrToRootEClassConverter {
+
+	/**
+	 * The value that expresses that a {@link DmrToRootEClassConverter} is not applicable for a
+	 * {@link VDomainModelReference}.
+	 */
+	double NOT_APPLICABLE = Double.NEGATIVE_INFINITY;
+
+	/**
+	 * Returns a double that expresses if and how suitable this DmrToRootEClassConverter is for the given
+	 * {@link VDomainModelReference}.
+	 *
+	 * @param dmr The {@link VDomainModelReference}
+	 * @return The value indicating how suitable this tester is, {@link #NOT_APPLICABLE} if it can't work with the given
+	 *         {@link VDomainModelReference}.
+	 */
+	double isApplicable(VDomainModelReference dmr);
+
+	/**
+	 * Determines the root {@link EClass} of the given legacy domain model reference. Throws an exception if the root
+	 * EClass could not be determined because this means that the given DMR is invalid.
+	 *
+	 * @param dmr The {@link VDomainModelReference} whose root EClass is calculated
+	 * @return The root EClass of the given dmr
+	 * @throws IllegalArgumentException if the root EClass cannot be determined because of an invalid dmr
+	 */
+	EClass getRootEClass(VDomainModelReference dmr) throws IllegalArgumentException;
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/EMFFormsSegmentGenerator.java b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/EMFFormsSegmentGenerator.java
index 51c49c8..b68c441 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/EMFFormsSegmentGenerator.java
+++ b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/EMFFormsSegmentGenerator.java
@@ -33,6 +33,9 @@
 	 * Takes a {@link VDomainModelReference} and generates the list of equivalent {@link VDomainModelReferenceSegment
 	 * DMR Segments}. Equivalent means that a DMR using the generated segments resolves exactly the same as the given
 	 * DMR.
+	 * <p>
+	 * The segment generation <strong>is side-effect free</strong>. This means neither the given DMR nor any of its
+	 * contained or referenced elements is changed.
 	 *
 	 * @param reference The {@link VDomainModelReference} to generate the {@link VDomainModelReferenceSegment
 	 *            segments} for
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/LegacyDmrToRootEClass.java b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/LegacyDmrToRootEClass.java
new file mode 100644
index 0000000..54ada68
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.segments/src/org/eclipse/emfforms/spi/core/services/segments/LegacyDmrToRootEClass.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.segments;
+
+import java.util.Optional;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * This service calculates the root {@link EClass} for a given legacy domain model reference.
+ *
+ * @author Lucas Koehler
+ * @noimplement This interface is not intended to be implemented by clients. Instead, clients should implement
+ *              {@link DmrToRootEClassConverter} to support custom {@link VDomainModelReference}
+ *              implementations
+ * @since 1.22
+ */
+public interface LegacyDmrToRootEClass {
+
+	/**
+	 * Determines the root {@link EClass} of the given legacy domain model reference. Returns nothing, if the DMR is
+	 * segment-based, the given DMR is empty, or there is no fitting {@link DmrToRootEClassConverter}.
+	 *
+	 * @param dmr The {@link VDomainModelReference} whose root EClass is calculated
+	 * @return The root EClass of the given DMR or nothing if it could not be determined due to one of the reasons
+	 *         listed above.
+	 */
+	Optional<EClass> getRootEClass(VDomainModelReference dmr);
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.default/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.structuralchange.default/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.default/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.default/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0c22e0b..d6c776c 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.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 dd62417..6509f9a 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.index/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.structuralchange.index/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.index/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.index/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c245572..3988c62 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.index;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.index;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.common.spi.asserts;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.22.0,1.23.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 51e5d7b..01f2b5e 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 321d2a2..99bfada 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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 6705876..49e4e4b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ac6518c..120325e 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.mapping;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.mapping;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.common.spi.asserts;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.22.0,1.23.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 2691579..5621aaa 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.table/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.structuralchange.table/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.table/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.table/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 40b4737..6447a9f 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Structural Change Tester Table
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.table
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/StructuralChangeTesterTable.xml
 Bundle-ActivationPolicy: lazy
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 50e9338..ce6de00 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.structuralchange/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ae69a1f..93da6ed 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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 8824737..19c0b7f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services/.project b/bundles/org.eclipse.emfforms.core.services/.project
index 01b9073..3a261e0 100644
--- a/bundles/org.eclipse.emfforms.core.services/.project
+++ b/bundles/org.eclipse.emfforms.core.services/.project
@@ -41,6 +41,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 81aeb2b..2988fc9 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,45 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.controlmapper;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.mappingprovider;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.scoped;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.controlmapper;version="1.21.0",
- org.eclipse.emfforms.spi.core.services.databinding;version="1.21.0",
- org.eclipse.emfforms.spi.core.services.domainexpander;version="1.21.0",
- org.eclipse.emfforms.spi.core.services.label;version="1.21.0",
- org.eclipse.emfforms.spi.core.services.mappingprovider;version="1.21.0",
- org.eclipse.emfforms.spi.core.services.structuralchange;version="1.21.0",
- org.eclipse.emfforms.spi.core.services.view;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+Export-Package: org.eclipse.emfforms.internal.core.services.controlmapper;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.mappingprovider;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.reveal;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.scoped;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.controlmapper;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.domainexpander;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.label;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.reveal;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="1.22.0",
+ org.eclipse.emfforms.spi.core.services.view;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.0,2.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
+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,
+ OSGI-INF/EMFFormsRevealServiceFactory.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.core.databinding.observable.list;version="0.0.0",
+Import-Package: javax.inject;version="[1.0.0,2.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.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.osgi.framework;version="1.8.0",
+ org.eclipse.e4.core.di;version="0.0.0",
+ org.eclipse.e4.core.di.suppliers;version="0.0.0",
+ org.eclipse.emf.ecp.view.spi.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.osgi.framework;version="[1.8.0,2.0.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/OSGI-INF/EMFFormsRevealServiceFactory.xml b/bundles/org.eclipse.emfforms.core.services/OSGI-INF/EMFFormsRevealServiceFactory.xml
new file mode 100644
index 0000000..9fb9f0f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/OSGI-INF/EMFFormsRevealServiceFactory.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="EMFFormsRevealServiceFactory">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceFactory"/>
+   </service>
+   <reference bind="addRevealProvider" cardinality="0..n" interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider" name="RevealProvider" policy="dynamic" unbind="removeRevealProvider"/>
+   <implementation class="org.eclipse.emfforms.internal.core.services.reveal.EMFFormsRevealServiceFactory"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.core.services/pom.xml b/bundles/org.eclipse.emfforms.core.services/pom.xml
index e14827c..acf90ed 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 fedaef7..81f2d8e 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
@@ -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 2.0
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * Lucas Koehler- initial API and implementation
- * Christian W. Damus - bug 533522
+ * Christian W. Damus - bugs 533522, 527686
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.controlmapper;
 
@@ -40,7 +40,7 @@
 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.EMFFormsContextTracker;
 import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
 
 /**
@@ -50,7 +50,7 @@
  *
  */
 public class SettingToControlMapperImpl
-	implements EMFFormsSettingToControlMapper, EMFFormsContextListener, SubControlMapper {
+	implements EMFFormsSettingToControlMapper, SubControlMapper {
 	/**
 	 * Used to get View model changes.
 	 *
@@ -107,6 +107,7 @@
 	private final Map<EMFFormsViewContext, VElement> contextParentMap = new LinkedHashMap<EMFFormsViewContext, VElement>();
 	private final Map<EMFFormsViewContext, ViewModelListener> contextListenerMap = new LinkedHashMap<EMFFormsViewContext, ViewModelListener>();
 	private final ModelChangeAddRemoveListenerImplementation viewModelChangeListener;
+	private final EMFFormsContextTracker contextTracker;
 	private boolean disposed;
 
 	/**
@@ -119,10 +120,16 @@
 		EMFFormsViewContext viewModelContext) {
 		this.mappingManager = mappingManager;
 		this.viewModelContext = viewModelContext;
-		viewModelContext.registerEMFFormsContextListener(this);
+
+		contextTracker = new EMFFormsContextTracker(viewModelContext);
+		contextTracker.onChildContextAdded(this::childContextAdded)
+			.onChildContextRemoved(this::childContextRemoved)
+			.onContextDisposed(this::contextDisposed)
+			.open();
+
 		viewModelChangeListener = new ModelChangeAddRemoveListenerImplementation();
-		viewModelContext.registerViewChangeListener(viewModelChangeListener);
 		dataModelListener = new ViewModelListener(viewModelContext, this);
+		viewModelContext.registerViewChangeListener(viewModelChangeListener);
 	}
 
 	/**
@@ -309,41 +316,27 @@
 		}
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener#childContextAdded(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 *      org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext)
-	 */
-	@Override
-	public void childContextAdded(VElement parentElement, EMFFormsViewContext childContext) {
-		childContext.registerViewChangeListener(viewModelChangeListener);
+	private void childContextAdded(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+
 		contextParentMap.put(childContext, parentElement);
-		contextListenerMap.put(childContext, new ViewModelListener(childContext, this));
 		final TreeIterator<EObject> eAllContents = childContext.getViewModel().eAllContents();
 		while (eAllContents.hasNext()) {
 			final EObject next = eAllContents.next();
 			if (VControl.class.isInstance(next)) {
 				controlContextMap.put((VControl) next, childContext);
-				vControlAdded((VControl) next);
 			}
 		}
-		childContext.registerEMFFormsContextListener(this);
+		contextListenerMap.put(childContext, new ViewModelListener(childContext, this));
+		childContext.registerViewChangeListener(viewModelChangeListener);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener#childContextDisposed(org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext)
-	 */
-	@Override
-	public void childContextDisposed(EMFFormsViewContext childContext) {
+	private void childContextRemoved(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+
 		if (disposed) {
 			return;
 		}
-		childContext.unregisterViewChangeListener(viewModelChangeListener);
-		final ViewModelListener listener = contextListenerMap.remove(childContext);
-		listener.dispose();
 
 		final TreeIterator<EObject> eAllContents = childContext.getViewModel().eAllContents();
 		while (eAllContents.hasNext()) {
@@ -355,8 +348,11 @@
 				controlContextMap.remove(controlToRemove);
 			}
 		}
+
+		childContext.unregisterViewChangeListener(viewModelChangeListener);
+		final ViewModelListener listener = contextListenerMap.remove(childContext);
+		listener.dispose();
 		contextParentMap.remove(childContext);
-		childContext.unregisterEMFFormsContextListener(this);
 	}
 
 	/**
@@ -386,30 +382,18 @@
 		vControlParentsRemoved(parentContext, controlToRemove);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener#contextInitialised()
-	 */
-	@Override
-	public void contextInitialised() {
-		// do nothing
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener#contextDispose()
-	 */
-	@Override
-	public void contextDispose() {
-		viewModelContext.unregisterEMFFormsContextListener(this);
-		dataModelListener.dispose();
-		settingToControlMap.clear();
-		controlContextMap.clear();
-		contextParentMap.clear();
-		contextListenerMap.clear();
-		disposed = true;
+	private void contextDisposed(EMFFormsViewContext context) {
+		if (contextTracker.isRoot(context)) {
+			context.unregisterViewChangeListener(viewModelChangeListener);
+			dataModelListener.dispose();
+			settingToControlMap.clear();
+			controlContextMap.clear();
+			contextParentMap.clear();
+			contextListenerMap.values().forEach(ViewModelListener::dispose);
+			contextListenerMap.clear();
+			contextTracker.close();
+			disposed = true;
+		}
 	}
 
 	@Override
@@ -452,6 +436,12 @@
 		return new SetView<UniqueSetting>(settings);
 	}
 
+	@Override
+	public boolean hasMapping(UniqueSetting setting, VElement control) {
+		final Collection<VElement> elements = settingToControlMap.get(setting);
+		return elements != null && elements.contains(control);
+	}
+
 	/**
 	 * A view of any collection as an unmodifiable set.
 	 *
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/mappingprovider/EMFFormsMappingProviderManagerImpl.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/mappingprovider/EMFFormsMappingProviderManagerImpl.java
index 64e3d1a..b9773dc 100644
--- a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/mappingprovider/EMFFormsMappingProviderManagerImpl.java
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/mappingprovider/EMFFormsMappingProviderManagerImpl.java
@@ -43,6 +43,7 @@
 	private static final RankingHelper<EMFFormsMappingProvider> RANKING_HELPER = //
 		new RankingHelper<EMFFormsMappingProvider>(
 			EMFFormsMappingProvider.class,
+			EMFFormsMappingProvider.NOT_APPLICABLE,
 			EMFFormsMappingProvider.NOT_APPLICABLE);
 
 	/**
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/DeferredRevealStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/DeferredRevealStep.java
new file mode 100644
index 0000000..d275833
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/DeferredRevealStep.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStepKind;
+
+/**
+ * A deferred reveal step.
+ *
+ * @since 1.22
+ */
+final class DeferredRevealStep implements RevealStep {
+
+	private final EMFFormsRevealServiceImpl owner;
+	private final VElement element;
+	private final EObject object;
+	private final EStructuralFeature feature;
+	private final Object computation;
+
+	private RevealStep resolved;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param owner my owning reveal service
+	 * @param element the view model element in which I reveal the {@code object}
+	 * @param object the object that I reveal
+	 * @param feature the structural feature that I reveal
+	 * @param computation the computation of the reveal step to which I delegate
+	 */
+	DeferredRevealStep(EMFFormsRevealServiceImpl owner, VElement element, EObject object,
+		EStructuralFeature feature, Object computation) {
+
+		super();
+
+		this.owner = owner;
+		this.element = element;
+		this.object = object;
+		this.feature = feature;
+		this.computation = computation;
+	}
+
+	@Override
+	public RevealStepKind getType() {
+		return RevealStepKind.TERMINAL;
+	}
+
+	@Override
+	public VElement getViewModel() {
+		return element;
+	}
+
+	@Override
+	public EObject getDomainModel() {
+		return object;
+	}
+
+	@Override
+	public EStructuralFeature getFeature() {
+		return feature;
+	}
+
+	@Override
+	public RevealStep drillDown() {
+		// I'm a terminal step
+		return null;
+	}
+
+	@Override
+	public void reveal() {
+		if (resolved == null) {
+			resolved = owner.evaluate(Reveal.class, RevealStep.class,
+				element, object, feature, computation).orElse(FAILED);
+		}
+
+		resolved.ifPresent(RevealStep::reveal);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/DrillDownRevealStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/DrillDownRevealStep.java
new file mode 100644
index 0000000..d365d86
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/DrillDownRevealStep.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStepKind;
+
+/**
+ * A deferred drill-down step.
+ *
+ * @since 1.22
+ */
+final class DrillDownRevealStep implements RevealStep {
+
+	private final EMFFormsRevealServiceImpl owner;
+	private final VElement element;
+	private final EObject object;
+	private final EStructuralFeature feature;
+	private final RevealStep nextStep;
+	private final Object computation;
+
+	private RevealStep resolved;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param owner my owning reveal service
+	 * @param element the view model element in which I drill down to the {@code object}
+	 * @param object the object that I reveal
+	 * @param feature the structural feature that I reveal
+	 * @param nextStep the actual next step in the drill-down sequence
+	 * @param computation the computation of the drill-down step to which I delegate
+	 */
+	DrillDownRevealStep(EMFFormsRevealServiceImpl owner, VElement element, EObject object,
+		EStructuralFeature feature, RevealStep nextStep, Object computation) {
+
+		super();
+
+		this.owner = owner;
+		this.element = element;
+		this.object = object;
+		this.feature = feature;
+		this.nextStep = nextStep;
+		this.computation = computation;
+	}
+
+	@Override
+	public RevealStepKind getType() {
+		return RevealStepKind.INTERMEDIATE;
+	}
+
+	@Override
+	public VElement getViewModel() {
+		return element;
+	}
+
+	@Override
+	public EObject getDomainModel() {
+		return object;
+	}
+
+	@Override
+	public EStructuralFeature getFeature() {
+		return null; // I am an intermediate step
+	}
+
+	@Override
+	public RevealStep drillDown() {
+		if (resolved == null) {
+			final Map<Class<?>, Object> additionalParameters = Collections.singletonMap(RevealStep.class, nextStep);
+
+			resolved = owner.evaluate(Reveal.class, RevealStep.class,
+				element, object, feature, additionalParameters, computation).orElse(FAILED);
+		}
+
+		return resolved;
+	}
+
+	@Override
+	public void reveal() {
+		// I have nothing of my own to reveal; only the next step to drill down into
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceFactory.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceFactory.java
new file mode 100644
index 0000000..9c3e78f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceFactory.java
@@ -0,0 +1,145 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import java.lang.ref.WeakReference;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.WeakHashMap;
+import java.util.function.Consumer;
+
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
+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;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+
+/**
+ * Factory that creates the EMF Forms reveal service.
+ *
+ * @since 1.22
+ */
+@Component(name = "EMFFormsRevealServiceFactory")
+public class EMFFormsRevealServiceFactory implements EMFFormsViewServiceFactory<EMFFormsRevealService> {
+
+	private final Object sync = new Object();
+
+	private final Collection<EMFFormsRevealProvider> providers = new HashSet<>();
+
+	private final Map<EMFFormsViewContext, WeakReference<EMFFormsRevealService>> serviceInstances = new WeakHashMap<>();
+
+	//
+	// View service factory protocol
+	//
+
+	@Override
+	public EMFFormsViewServiceScope getScope() {
+		return EMFFormsViewServiceScope.GLOBAL;
+	}
+
+	@Override
+	public EMFFormsViewServicePolicy getPolicy() {
+		// We need to track all child contexts as they come and go for master/detail support
+		return EMFFormsViewServicePolicy.IMMEDIATE;
+	}
+
+	@Override
+	public double getPriority() {
+		return 0.0;
+	}
+
+	@Override
+	public Class<EMFFormsRevealService> getType() {
+		return EMFFormsRevealService.class;
+	}
+
+	@Override
+	public EMFFormsRevealService createService(EMFFormsViewContext context) {
+		final EMFFormsRevealService result = new EMFFormsRevealServiceImpl(context);
+
+		init(result, context);
+
+		return result;
+	}
+
+	//
+	// Service instance management
+	//
+
+	private void init(EMFFormsRevealService service, EMFFormsViewContext context) {
+		synchronized (sync) {
+			providers.forEach(service::addRevealProvider);
+			serviceInstances.put(context, new WeakReference<>(service));
+		}
+	}
+
+	/**
+	 * Update service instances that are still valid.
+	 *
+	 * @param action the update action to apply to services
+	 */
+	private void updateServices(Consumer<? super EMFFormsRevealService> action) {
+		synchronized (sync) {
+			for (final Iterator<WeakReference<EMFFormsRevealService>> iter = serviceInstances.values().iterator(); iter
+				.hasNext();) {
+				final WeakReference<EMFFormsRevealService> next = iter.next();
+				final EMFFormsRevealService service = next.get();
+
+				if (service == null) {
+					// It was reclaimed
+					iter.remove();
+				} else {
+					action.accept(service);
+				}
+			}
+		}
+	}
+
+	//
+	// Service dependencies
+	//
+
+	/**
+	 * Inject a reveal provider dependency.
+	 *
+	 * @param provider the reveal provider to add
+	 */
+	@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+	public void addRevealProvider(EMFFormsRevealProvider provider) {
+		synchronized (sync) {
+			providers.add(provider);
+			updateServices(service -> service.addRevealProvider(provider));
+		}
+	}
+
+	/**
+	 * Uninject a reveal provider dependency.
+	 *
+	 * @param provider the reveal provider to remove
+	 */
+	public void removeRevealProvider(EMFFormsRevealProvider provider) {
+		synchronized (sync) {
+			updateServices(service -> service.removeRevealProvider(provider));
+			providers.remove(provider);
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceImpl.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceImpl.java
new file mode 100644
index 0000000..0e2f912
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceImpl.java
@@ -0,0 +1,372 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import java.lang.annotation.Annotation;
+import java.util.Map;
+import java.util.Optional;
+
+import org.eclipse.e4.core.contexts.ContextFunction;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.InjectionException;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.common.spi.BidirectionalMap;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.bazaar.Bazaar;
+import org.eclipse.emfforms.bazaar.BazaarContext;
+import org.eclipse.emfforms.spi.bazaar.BazaarUtil;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextTracker;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * Implementation of the EMF Forms reveal service.
+ *
+ * @since 1.22
+ */
+public class EMFFormsRevealServiceImpl implements EMFFormsRevealService {
+
+	private final Bazaar<RevealStep> stepBazaar = BazaarUtil.createBazaar(RevealStep.FAILED);
+
+	/**
+	 * Mapping of detail contexts into which reveal steps delegate drill-down.
+	 * Keys are the view models of the detail contexts that are the values.
+	 */
+	private final BidirectionalMap<VElement, EMFFormsViewContext> detailContexts = new BidirectionalMap<>();
+
+	private final EMFFormsViewContext viewContext;
+	private IEclipseContext e4Context;
+
+	/**
+	 * Initializes me with my view context.
+	 *
+	 * @param viewContext my view context
+	 */
+	public EMFFormsRevealServiceImpl(EMFFormsViewContext viewContext) {
+		super();
+
+		this.viewContext = viewContext;
+
+		new EMFFormsContextTracker(viewContext)
+			.onChildContextAdded(this::childContextAdded)
+			.onChildContextRemoved(this::childContextRemoved)
+			.onContextDisposed(this::contextDisposed)
+			.open();
+	}
+
+	private void contextDisposed(EMFFormsViewContext ctx) {
+		if (ctx == viewContext && e4Context != null) {
+			final IEclipseContext toDispose = e4Context;
+			e4Context = null;
+			toDispose.dispose();
+		}
+	}
+
+	@Override
+	public boolean reveal(EObject object) {
+		final RevealStep step = reveal(object, null, viewContext.getViewModel());
+		return perform(step);
+	}
+
+	@Override
+	public boolean reveal(EObject object, EStructuralFeature feature) {
+		RevealStep step = reveal(object, feature, viewContext.getViewModel());
+		if (step.isFailed() && feature != null) {
+			// Try revealing the object itself, then
+			step = reveal(object, viewContext.getViewModel());
+		}
+		return perform(step);
+	}
+
+	/**
+	 * Invoke a reveal step to reveal an object.
+	 *
+	 * @param revealStep the reveal step to perform
+	 * @return whether the step revealed the object
+	 */
+	boolean perform(RevealStep revealStep) {
+		RevealStep step = revealStep;
+
+		while (!step.isDone()) {
+			step = step.drillDown();
+		}
+
+		final boolean result = !step.isFailed();
+
+		if (result) {
+			step.reveal();
+		}
+
+		return result;
+	}
+
+	@Override
+	public RevealStep reveal(EObject object, VElement scope) {
+		return reveal(object, null, scope);
+	}
+
+	@Override
+	public RevealStep reveal(EObject object, EStructuralFeature feature, VElement scope) {
+		final IEclipseContext e4Context = createLocalContext("Reveal Service Bazaar", //$NON-NLS-1$
+			scope, object, feature, null);
+
+		try {
+			final BazaarContext context = BazaarContext.Builder.empty()
+				.put(IEclipseContext.class, e4Context)
+				.build();
+
+			// We have a default vendor but a vendor that wins the bid may
+			// nonetheless create a null
+			return Optional.ofNullable(stepBazaar.createProduct(context))
+				.orElse(RevealStep.fail());
+		} finally {
+			e4Context.dispose();
+		}
+	}
+
+	private IEclipseContext getEclipseContext() {
+		if (e4Context == null) {
+			e4Context = viewContext.getService(IEclipseContext.class);
+
+			if (e4Context == null) {
+				final Bundle bundle = FrameworkUtil.getBundle(EMFFormsRevealServiceImpl.class);
+				e4Context = EclipseContextFactory.createServiceContext(bundle.getBundleContext());
+			} else {
+				// Create a private child context that we can dispose
+				e4Context = e4Context.createChild("Reveal Service"); //$NON-NLS-1$
+			}
+
+			e4Context.set(EMFFormsRevealService.class, this);
+			e4Context.set(EMFFormsRevealServiceImpl.class, this);
+			e4Context.set(EMFFormsViewContext.class, viewContext);
+
+			// Bind our helper implementation
+			e4Context.set(RevealHelper.class.getName(), new ContextFunction() {
+				@Override
+				public Object compute(IEclipseContext context, String contextKey) {
+					return ContextInjectionFactory.make(RevealHelperImpl.class, context);
+				}
+			});
+		}
+		return e4Context;
+	}
+
+	/**
+	 * Evaluate an {@code annotation} computation in a temporary Eclipse context.
+	 *
+	 * @param <T> the type of {@code computation} to perform
+	 * @param annotation the annotation of the method to invoke
+	 * @param resultType the type of {@code computation} to perform
+	 * @param element a view-model element to inject into the context
+	 * @param object a domain-model element (being revealed) to inject into the context
+	 * @param feature the structural feature (if any) to inject into the context
+	 * @param computation the computation to perform
+	 * @return the result of the {@code computation}
+	 */
+	final <T> Optional<T> evaluate(Class<? extends Annotation> annotation,
+		Class<T> resultType, VElement element, EObject object, EStructuralFeature feature,
+		Object computation) {
+
+		return evaluate(annotation, resultType, element, object, feature, null, computation);
+	}
+
+	/**
+	 * Evaluate an {@code annotation} computation in a temporary Eclipse context.
+	 *
+	 * @param <T> the type of {@code computation} to perform
+	 * @param annotation the annotation of the method to invoke
+	 * @param resultType the type of {@code computation} to perform
+	 * @param element a view-model element to inject into the context
+	 * @param object a domain-model element (being revealed) to inject into the context
+	 * @param feature the structural feature (if any) to inject into the context
+	 * @param parameters additional variables to inject
+	 * @param computation the computation to perform
+	 * @return the result of the {@code computation}
+	 */
+	final <T> Optional<T> evaluate(Class<? extends Annotation> annotation,
+		Class<T> resultType, VElement element, EObject object, EStructuralFeature feature,
+		Map<Class<?>, ?> parameters, Object computation) {
+
+		final IEclipseContext localContext = createLocalContext("invocation", //$NON-NLS-1$
+			element, object, feature, parameters);
+
+		try {
+			return evaluate(annotation, resultType, localContext, computation);
+		} finally {
+			localContext.dispose();
+		}
+	}
+
+	/**
+	 * Evaluate an {@code annotation} computation in a temporary Eclipse context.
+	 *
+	 * @param <T> the type of {@code computation} to perform
+	 * @param annotation the annotation of the method to invoke
+	 * @param resultType the type of {@code computation} to perform
+	 * @param context the Eclipse context for method injection
+	 * @param computation the computation to perform
+	 * @return the result of the {@code computation}
+	 */
+	final <T> Optional<T> evaluate(Class<? extends Annotation> annotation, Class<T> resultType,
+		IEclipseContext context, Object computation) {
+
+		Object result;
+		try {
+			result = ContextInjectionFactory.invoke(computation, annotation, context, null);
+		} catch (final InjectionException e) {
+			report(new AbstractReport(e.getCause(), e.getMessage()));
+			result = null;
+		}
+
+		return Optional.ofNullable(result).filter(resultType::isInstance).map(resultType::cast);
+	}
+
+	/**
+	 * Create a local context to overlay on our primary context for method invocation.
+	 *
+	 * @param debugLabel a debug label for the context
+	 * @param viewModel the view-model element to inject
+	 * @param domainModel the domain-model element to inject
+	 * @param feature the structural feature to inject, or {@code null} if none
+	 * @param parameters additional variables to inject
+	 *
+	 * @return the local (overlay) injection context
+	 */
+	private IEclipseContext createLocalContext(String debugLabel, VElement viewModel, EObject domainModel,
+		EStructuralFeature feature, Map<Class<?>, ?> parameters) {
+
+		final IEclipseContext result = getEclipseContext().createChild(debugLabel);
+
+		fill(result, viewModel, domainModel, feature);
+
+		if (parameters != null) {
+			for (final Map.Entry<Class<?>, ?> entry : parameters.entrySet()) {
+				final String key = entry.getKey().getName();
+				if (!result.containsKey(key)) {
+					result.set(key, entry.getValue());
+				}
+			}
+		}
+
+		return result;
+	}
+
+	private void fill(IEclipseContext context, VElement viewModel, EObject domainModel, EStructuralFeature feature) {
+		final String eObjectClassName = EObject.class.getName();
+		context.set(eObjectClassName, domainModel);
+		if (feature != null) {
+			context.set(EStructuralFeature.class, feature);
+		}
+
+		// It is more important for the view model to support specific types in the
+		// injection because that is more likely to be what reveal providers filter
+		// on (after all, the renderers employed depend on the view model, not the
+		// domain model that they render). We cannot do the same for the domain
+		// model because of the special case of the View Model Editor, in which the
+		// domain model is an instance of the view model packages
+		context.set(viewModel.eClass().getInstanceClassName(), viewModel);
+		for (final EClass next : viewModel.eClass().getEAllSuperTypes()) {
+			final String superclassName = next.getInstanceClassName();
+
+			// In case EObject is an explicit superclass, don't hide the domain model
+			if (!eObjectClassName.equals(superclassName)) {
+				context.set(superclassName, viewModel);
+			}
+		}
+
+		final EMFFormsViewContext viewContext = getViewContext(viewModel);
+		if (viewContext != null) {
+			context.set(EMFFormsViewContext.class, viewContext);
+		}
+	}
+
+	private void report(AbstractReport report) {
+		final ReportService service = viewContext.getService(ReportService.class);
+		if (service != null) {
+			service.report(report);
+		} else if (report.hasException()) {
+			report.getException().printStackTrace();
+		}
+	}
+
+	/**
+	 * Get the nearest context for a view model {@code element}. This is either some active
+	 * detail context or the root context that owns me.
+	 *
+	 * @param element a view-model element
+	 * @return its most specific applicable context
+	 */
+	protected EMFFormsViewContext getViewContext(VElement element) {
+		EMFFormsViewContext result = null;
+
+		// Don't just get the root container, but the container that is a view that
+		// either is the root or is the detail view of (e.g.) a table or tree
+		for (EObject parent = element; result == null && parent != null; parent = parent.eContainer()) {
+			if (parent instanceof VElement) {
+				result = detailContexts.getValue((VElement) parent);
+			}
+		}
+		if (result == null) {
+			result = viewContext;
+		}
+		return result;
+	}
+
+	@Override
+	public void addRevealProvider(EMFFormsRevealProvider provider) {
+		stepBazaar.addVendor(provider);
+	}
+
+	@Override
+	public void removeRevealProvider(EMFFormsRevealProvider provider) {
+		stepBazaar.removeVendor(provider);
+	}
+
+	private void childContextAdded(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+
+		detailContexts.put(childContext.getViewModel(), childContext);
+	}
+
+	private void childContextRemoved(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+
+		detailContexts.removeByValue(childContext);
+	}
+
+	/**
+	 * Find the view model context that is the child context for details of the given
+	 * master selection.
+	 *
+	 * @param masterSelection an object selected in the master control
+	 * @return the detail context, or {@code null} if none
+	 */
+	EMFFormsViewContext getDetailContext(EObject masterSelection) {
+		return detailContexts.values().stream()
+			.filter(ctx -> ctx.getDomainModel() == masterSelection)
+			.findAny().orElse(null);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/MasterDetailRevealStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/MasterDetailRevealStep.java
new file mode 100644
index 0000000..5ab0ef8
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/MasterDetailRevealStep.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import java.util.Optional;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillUp;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStepKind;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+
+/**
+ * A master/detail reveal step.
+ *
+ * @since 1.22
+ */
+final class MasterDetailRevealStep implements RevealStep {
+
+	private final EMFFormsRevealServiceImpl owner;
+	private final VElement element;
+	private final EObject object;
+	private final EStructuralFeature feature;
+	private final Object masterFunction;
+	private final Object masterStep;
+	private RevealStep resolvedMasterStep;
+	private RevealStep resolvedDetailStep;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param owner the reveal service that owns me
+	 * @param element the master view model element
+	 * @param object the object to reveal in the detail
+	 * @param feature the structural feature that I reveal
+	 * @param masterFunction the to compute the master selection object in the master view
+	 *            that needs to be revealed to present the detail for reveal of the {@code object}
+	 * @param masterStep how to reveal the selection in the master view
+	 */
+	MasterDetailRevealStep(EMFFormsRevealServiceImpl owner, VElement element, EObject object,
+		EStructuralFeature feature, Object masterFunction, Object masterStep) {
+
+		super();
+
+		this.owner = owner;
+		this.element = element;
+		this.object = object;
+		this.feature = feature;
+		this.masterFunction = masterFunction;
+		this.masterStep = masterStep;
+	}
+
+	@Override
+	public RevealStepKind getType() {
+		return RevealStepKind.INTERMEDIATE;
+	}
+
+	@Override
+	public VElement getViewModel() {
+		return element;
+	}
+
+	@Override
+	public EObject getDomainModel() {
+		return object;
+	}
+
+	@Override
+	public EStructuralFeature getFeature() {
+		return null; // I am an intermediate step
+	}
+
+	@Override
+	public RevealStep drillDown() {
+		if (resolvedMasterStep == null) {
+			final EObject master = computeMaster(object);
+
+			if (master != null) {
+				// The master is revealed as itself in some control, so no feature applies
+				resolvedMasterStep = owner.evaluate(Reveal.class, RevealStep.class,
+					element, master, null, masterStep).orElse(FAILED);
+
+				// Perform the master step now so that it can set up the
+				// detail context that we need next
+				reveal();
+
+				if (master != object || feature != null) {
+					// There's also a detail to reveal, possibly a specific feature.
+					// Find the view model context for the master object
+					final EMFFormsViewContext detailContext = owner.getDetailContext(master);
+					resolvedDetailStep = Optional.ofNullable(detailContext)
+						.map(ctx -> owner.reveal(object, feature, ctx.getViewModel()))
+						.orElse(FAILED);
+				} else {
+					resolvedDetailStep = FAILED;
+				}
+			} else {
+				resolvedMasterStep = FAILED;
+				resolvedDetailStep = FAILED;
+			}
+		}
+
+		return resolvedDetailStep;
+	}
+
+	private EObject computeMaster(EObject object) {
+		// The master is revealed as itself in some control, so no feature applies
+		return owner.evaluate(DrillUp.class, EObject.class,
+			element, object, null, masterFunction).orElse(null);
+	}
+
+	@Override
+	public void reveal() {
+		resolvedMasterStep.ifPresent(owner::perform);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/RevealHelperImpl.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/RevealHelperImpl.java
new file mode 100644
index 0000000..b4b314e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/reveal/RevealHelperImpl.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import static java.util.stream.StreamSupport.stream;
+
+import java.util.Collections;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillDown;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+
+/**
+ * Implementation of the reveal helper protocol.
+ */
+final class RevealHelperImpl implements RevealHelper {
+
+	private final EMFFormsRevealServiceImpl owner;
+	private final VElement viewModel;
+	private final EObject domainModel;
+	private final EStructuralFeature feature;
+
+	/**
+	 * Initialize me without a feature to reveal.
+	 *
+	 * @param owner the reveal service that owns me
+	 * @param viewModel the view model in which to reveal an object
+	 * @param domainModel the object to reveal
+	 */
+	@Inject
+	RevealHelperImpl(EMFFormsRevealServiceImpl owner, VElement viewModel, EObject domainModel) {
+		this(owner, viewModel, domainModel, null);
+	}
+
+	/**
+	 * Initialize me with a feature to reveal.
+	 *
+	 * @param owner the reveal service that owns me
+	 * @param viewModel the view model in which to reveal an object
+	 * @param domainModel the object to reveal
+	 * @param feature the specific feature of the object to reveal in the form
+	 */
+	@Inject
+	RevealHelperImpl(EMFFormsRevealServiceImpl owner, VElement viewModel, EObject domainModel,
+		EStructuralFeature feature) {
+		super();
+
+		this.owner = owner;
+		this.viewModel = viewModel;
+		this.domainModel = domainModel;
+		this.feature = feature;
+	}
+
+	@Override
+	public RevealStep drillDown(Object drillDownStep, Object childrenFunction) {
+		Stream<? extends VElement> children;
+		if (childrenFunction == null) {
+			children = viewModel.eContents().stream()
+				.filter(VElement.class::isInstance).map(VElement.class::cast);
+		} else {
+			final Iterable<?> evaluation = owner.evaluate(DrillDown.class, Iterable.class,
+				viewModel, domainModel, feature, childrenFunction).orElse(Collections.emptyList());
+			children = stream(evaluation.spliterator(), false)
+				.filter(VElement.class::isInstance).map(VElement.class::cast);
+		}
+
+		return children
+			.map(contained -> owner.reveal(domainModel, feature, contained))
+			.sorted(RevealStep.preferredOrdering())
+			.findFirst().map(nextStep -> RevealStep.drillDown(
+				viewModel, owner.getViewContext(viewModel).getDomainModel(),
+				nextStep, () -> owner.perform(new DrillDownRevealStep(
+					owner, viewModel, domainModel, feature, nextStep, drillDownStep))))
+			.orElse(RevealStep.FAILED);
+	}
+
+	@Override
+	public RevealStep defer(Object deferredStep) {
+		return new DeferredRevealStep(owner, viewModel, domainModel,
+			feature, deferredStep);
+	}
+
+	@Override
+	public RevealStep masterDetail(Object masterStep, Object masterFunction) {
+		return new MasterDetailRevealStep(owner, viewModel, domainModel,
+			feature, masterFunction, masterStep);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/EMFFormsSettingToControlMapper.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/EMFFormsSettingToControlMapper.java
index e41246a..5e90a7b 100644
--- a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/EMFFormsSettingToControlMapper.java
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/EMFFormsSettingToControlMapper.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.spi.core.services.controlmapper;
 
@@ -103,4 +104,19 @@
 	 */
 	Set<UniqueSetting> getSettingsForControl(VControl control);
 
+	/**
+	 * Query whether I have mapped the given {@code control} for the the a {@code setting}.
+	 *
+	 * @param setting an unique setting of some feature of some domain model object
+	 * @param control a control in the view model
+	 * @return {@code true} if I have mapped the {@code setting} to the {@code control};
+	 *         {@code false}, otherwise
+	 *
+	 * @since 1.22
+	 */
+	default boolean hasMapping(UniqueSetting setting, VElement control) {
+		return hasControlsFor(setting.getEObject())
+			&& getControlsFor(setting).contains(control);
+	}
+
 }
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/DrillDown.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/DrillDown.java
new file mode 100644
index 0000000..cb74aff
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/DrillDown.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation on a method that computes the {@link Iterable Iterable&lt;? extends VElement&gt;}
+ * children of a view-model element to drill down into for a delegated
+ * {@linkplain RevealHelper#drillDown(Object, Object) drill-down} reveal step.
+ *
+ * @since 1.22
+ * @see RevealHelper#drillDown(Object, Object)
+ *
+ */
+@Documented
+@Retention(RUNTIME)
+@Target(METHOD)
+public @interface DrillDown {
+	// No attributes
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/DrillUp.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/DrillUp.java
new file mode 100644
index 0000000..e1da59a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/DrillUp.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * Annotation on a method that computes the {@link EObject} parent of a detail domain model object
+ * to try to reveal in the master view in a delegated
+ * {@linkplain RevealHelper#masterDetail(Object, Object) master-detail} reveal step.
+ *
+ * @since 1.22
+ * @see RevealHelper#masterDetail(Object, Object)
+ *
+ */
+@Documented
+@Retention(RUNTIME)
+@Target(METHOD)
+public @interface DrillUp {
+	// No attributes
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/EMFFormsRevealProvider.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/EMFFormsRevealProvider.java
new file mode 100644
index 0000000..d003dc3
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/EMFFormsRevealProvider.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.bazaar.Vendor;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+
+/**
+ * <p>
+ * A provider of reveal strategies to the {@link EMFFormsRevealService}.
+ * This is intended to be implemented as OSGi services. The Eclipse DI
+ * context for the provider invocation includes at least the following
+ * variables, in addition to anything else injected by the editor site that
+ * hosts the view context (if the editor implementation puts the Eclipse context
+ * into the view context):
+ * </p>
+ * <ul>
+ * <li>the domain model object being revealed: {@link EObject EObject.class}</li>
+ * <li>the view model element describing the UI in which it is revealed: {@link VElement VElement.class}</li>
+ * <li>a helper for complex drill-down and master/detail scenarios: {@link RevealHelper RevealHelper.class}</li>
+ * <li>the reveal service: {@link EMFFormsRevealService EMFFormsRevealService.class}</li>
+ * <li>the view context: {@link EMFFormsViewContext EMFFormsViewContext.class}</li>
+ * </ul>
+ * <p>
+ * Additionally, in an SWT rendering at least, a method parameter of any
+ * renderer type annotated with
+ * {@code @org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer}
+ * will be computed from the contextual {@link VElement} and {@link EMFFormsViewContext}.
+ * And a context function is available to cast the injectable view context as an
+ * {@code org.eclipse.emf.ecp.view.spi.context.ViewModelContext} when applicable.
+ * </p>
+ *
+ * @see EMFFormsRevealService#addRevealProvider(EMFFormsRevealProvider)
+ *
+ * @since 1.22
+ */
+public interface EMFFormsRevealProvider extends Vendor<RevealStep> {
+	// API inferred by Bazaar annotations
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/EMFFormsRevealService.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/EMFFormsRevealService.java
new file mode 100644
index 0000000..c956d12
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/EMFFormsRevealService.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+
+/**
+ * A service that mediates requests to reveal (navigate to) objects in an
+ * EMF Forms Editor with providers that know how to fulfil those requests.
+ *
+ * @since 1.22
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface EMFFormsRevealService {
+
+	/**
+	 * Attempt to reveal an {@code object} in the most appropriate (by best effort)
+	 * control in the current editor context. Effectively equivalent to
+	 * {@link #reveal(EObject, VElement)} in the topmost scope (the root {@link VView})
+	 * of the context.
+	 *
+	 * @param object an object to reveal
+	 * @return {@code true} if the {@code object} was revealed; {@code false}, otherwise
+	 */
+	boolean reveal(EObject object);
+
+	/**
+	 * Attempt to reveal a {@code feature} of an {@code object} in the most appropriate
+	 * (by best effort) control in the current editor context. Effectively equivalent to
+	 * {@link #reveal(EObject, EStructuralFeature, VElement)} in the topmost scope
+	 * (the root {@link VView}) of the context.
+	 *
+	 * @param object an object to reveal
+	 * @param feature a specific feature (implying a detail control) to reveal
+	 * @return {@code true} if the {@code object} was revealed; {@code false}, otherwise
+	 */
+	boolean reveal(EObject object, EStructuralFeature feature);
+
+	/**
+	 * Attempt to reveal an {@code object} in the most appropriate (by best effort)
+	 * control within the given {@code scope}. Most applications will not need to interact
+	 * with reveal steps directly but only through the {@link #reveal(EObject)} API;
+	 * {@linkplain EMFFormsRevealProvider reveal providers} may need this API to delegate
+	 * a {@linkplain RevealStep#drillDown(VElement, EObject, RevealStep, Runnable) drill down}.
+	 *
+	 * @param object an object to reveal
+	 * @param scope a control within which to attempt to reveal the {@code object}
+	 *
+	 * @return a step-wise chain of operations to progressively reveal the {@code object}
+	 *         in the given {@code scope}, or {@linkplain RevealStep#fail() a failed step} if none
+	 */
+	RevealStep reveal(EObject object, VElement scope);
+
+	/**
+	 * Attempt to reveal a {@code feature} of an {@code object} in the most appropriate
+	 * (by best effort) control within the given {@code scope}. Most applications will not need
+	 * to interact with reveal steps directly but only through the
+	 * {@link #reveal(EObject, EStructuralFeature)} API;
+	 * {@linkplain EMFFormsRevealProvider reveal providers} may need this API to delegate
+	 * a {@linkplain RevealStep#drillDown(VElement, EObject, RevealStep, Runnable) drill down}.
+	 *
+	 * @param object an object to reveal
+	 * @param feature a specific feature (implying a detail control) to reveal
+	 * @param scope a control within which to attempt to reveal the {@code object}
+	 *
+	 * @return a step-wise chain of operations to progressively reveal the {@code object}
+	 *         in the given {@code scope}, or {@linkplain RevealStep#fail() a failed step} if none
+	 */
+	RevealStep reveal(EObject object, EStructuralFeature feature, VElement scope);
+
+	/**
+	 * Register a reveal provider.
+	 *
+	 * @param provider the reveal provider to register
+	 */
+	void addRevealProvider(EMFFormsRevealProvider provider);
+
+	/**
+	 * Unregister a reveal provider.
+	 *
+	 * @param provider the reveal provider to unregister
+	 */
+	void removeRevealProvider(EMFFormsRevealProvider provider);
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/FailedStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/FailedStep.java
new file mode 100644
index 0000000..ab187ac
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/FailedStep.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * The failed reveal step.
+ *
+ * @since 1.22
+ */
+final class FailedStep implements RevealStep {
+
+	/**
+	 * Initializes me.
+	 */
+	FailedStep() {
+		super();
+	}
+
+	@Override
+	public RevealStepKind getType() {
+		return RevealStepKind.FAILED;
+	}
+
+	@Override
+	public VElement getViewModel() {
+		return null;
+	}
+
+	@Override
+	public EObject getDomainModel() {
+		return null;
+	}
+
+	@Override
+	public EStructuralFeature getFeature() {
+		return null;
+	}
+
+	@Override
+	public RevealStep drillDown() {
+		throw new IllegalStateException("reveal failed"); //$NON-NLS-1$
+	}
+
+	@Override
+	public void reveal() {
+		throw new IllegalStateException("reveal failed"); //$NON-NLS-1$
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/IntermediateStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/IntermediateStep.java
new file mode 100644
index 0000000..8a67613
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/IntermediateStep.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * An intermediate step in a successful reveal.
+ *
+ * @since 1.22
+ */
+final class IntermediateStep implements RevealStep {
+
+	private final VElement viewModel;
+	private final EObject domainModel;
+	private final RevealStep nextStep;
+	private final Runnable revealAction;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param viewModel the view model in which I reveal the object
+	 * @param domainModel the object that I reveal
+	 * @param nextStep the next step in the drill-down sequence
+	 * @param revealAction the action that performs the reveal in the UI
+	 */
+	IntermediateStep(VElement viewModel, EObject domainModel, RevealStep nextStep, Runnable revealAction) {
+		super();
+
+		this.viewModel = viewModel;
+		this.domainModel = domainModel;
+		this.nextStep = nextStep;
+		this.revealAction = revealAction;
+	}
+
+	@Override
+	public RevealStepKind getType() {
+		return RevealStepKind.INTERMEDIATE;
+	}
+
+	@Override
+	public VElement getViewModel() {
+		return viewModel;
+	}
+
+	@Override
+	public EObject getDomainModel() {
+		return domainModel;
+	}
+
+	@Override
+	public EStructuralFeature getFeature() {
+		return null;
+	}
+
+	@Override
+	public RevealStep drillDown() {
+		reveal();
+
+		return nextStep;
+	}
+
+	@Override
+	public void reveal() {
+		if (revealAction != null) {
+			revealAction.run();
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/Reveal.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/Reveal.java
new file mode 100644
index 0000000..bc5c7d7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/Reveal.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation on a method that computes the {@link RevealStep} for a delegated
+ * {@linkplain RevealHelper#drillDown(Object, Object) drill-down}
+ * or {@linkplain RevealHelper#masterDetail(Object, Object) master-detail}
+ * reveal step.
+ *
+ * @since 1.22
+ * @see RevealHelper
+ *
+ */
+@Documented
+@Retention(RUNTIME)
+@Target(METHOD)
+public @interface Reveal {
+	// No attributes
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealHelper.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealHelper.java
new file mode 100644
index 0000000..af17d8b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealHelper.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * Helper utility for common revealing patterns.
+ *
+ * @since 1.22
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface RevealHelper {
+
+	/**
+	 * Create an intermediate step that drills down into the best fitting of the children
+	 * of the view-model element in the current scope.
+	 *
+	 * @param drillDownStep a computation of the drill-down step. Must have a
+	 *            method annotated with {@link Reveal @Reveal} and result type conforming to
+	 *            {@link RevealStep}
+	 *
+	 * @return the intermediate drill-down step
+	 * @see #drillDown(Object, Object)
+	 */
+	default RevealStep drillDown(Object drillDownStep) {
+		return drillDown(drillDownStep, null);
+	}
+
+	/**
+	 * Create an intermediate step that drills down into the best fitting of the children
+	 * of the view-model element in the current scope.
+	 * In addition to the usual injections, the drill-down step computation is also provided
+	 * the {@link RevealStep} that is the next step in the sequence, revealing the object in
+	 * whatever child of the parent element the computed step reveals.
+	 *
+	 * @param drillDownStep a computation of the drill-down step. Must have a
+	 *            method annotated with {@link Reveal @Reveal} and result type conforming to
+	 *            {@link RevealStep}
+	 * @param childrenFunction an optional function returning the subset of the {@code element}'s
+	 *            children to consider for drilling down into. If omitted, all of the
+	 *            {@link EObject#eContents()} of the {@code element} that are
+	 *            {@link VElement}s are implied. Must have a method annotated with
+	 *            {@link DrillDown @DrillDown} and result type conforming to
+	 *            {@link Iterable Iterable&lt;? extends VElement&gt;}
+	 *
+	 * @return the intermediate drill-down step
+	 */
+	RevealStep drillDown(Object drillDownStep, Object childrenFunction);
+
+	/**
+	 * Create a deferred reveal step that will attempt to reveal the domain model object
+	 * in the current context.
+	 *
+	 * @param deferredStep a computation of the deferred reveal step. Must have a
+	 *            method annotated with {@link Reveal @Reveal} and result type conforming to
+	 *            {@link RevealStep}
+	 *
+	 * @return the deferred terminal reveal step
+	 */
+	RevealStep defer(Object deferredStep);
+
+	/**
+	 * Create a master/detail reveal step that will reveal the master of the object to be
+	 * revealed in the current context and then reveal that detail object, if it is a detail
+	 * of some master.
+	 *
+	 * @param masterStep in the case that a master object is found to reveal, a computation of the
+	 *            reveal step for the master selection. Must have a method annotated with
+	 *            {@link Reveal @Reveal} and result type conforming to {@link RevealStep}
+	 * @param masterFunction a function to compute the master object of which the {@code object} is a
+	 *            detail in the presentation of the given {@code element}. If the function returns either
+	 *            the input {@link EObject} domain model object or {@code null}, then that input is
+	 *            considered to be a master itself, and not a detail. Must have a method annotated with
+	 *            {@link DrillUp @DrillUp} and result type conforming to {@link EObject}
+	 *
+	 * @return the master/detail reveal step
+	 */
+	RevealStep masterDetail(Object masterStep, Object masterFunction);
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealStep.java
new file mode 100644
index 0000000..d186e4a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealStep.java
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import java.util.Comparator;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * A step in the progressive reveal of an object.
+ *
+ * @since 1.22
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface RevealStep {
+
+	/**
+	 * The step indicating failure to reveal the object.
+	 *
+	 * @see RevealStepKind#FAILED
+	 *
+	 * @see #fail()
+	 */
+	RevealStep FAILED = new FailedStep();
+
+	/**
+	 * Query the type of reveal step that I am.
+	 *
+	 * @return my type
+	 */
+	RevealStepKind getType();
+
+	/**
+	 * Query whether I am a {@linkplain RevealStepKind#FAILED failed} reveal step.
+	 *
+	 * @return whether I represent failure to reveal the requested object
+	 */
+	default boolean isFailed() {
+		return getType() == RevealStepKind.FAILED;
+	}
+
+	/**
+	 * Query whether I am a {@linkplain RevealStepKind#INTERMEDIATE non-intermediate} reveal step.
+	 *
+	 * @return {@code true} if there is no further progress to be made in revealing;
+	 *         {@code false}, otherwise
+	 */
+	default boolean isDone() {
+		return getType() != RevealStepKind.INTERMEDIATE;
+	}
+
+	/**
+	 * Query the view model element in which I reveal my {@linkplain #getDomainModel() domain model}.
+	 *
+	 * @return my view model scope, or {@code null} if {@linkplain #isFailed() I am failed}
+	 */
+	VElement getViewModel();
+
+	/**
+	 * Query the domain object that I reveal in my {@linkplain #getViewModel() view model element}.
+	 *
+	 * @return my domain model scope, or {@code null} if {@linkplain #isFailed() I am failed}
+	 */
+	EObject getDomainModel();
+
+	/**
+	 * Query the feature that I reveal, if any. If I am not a {@link RevealStepKind#TERMINAL terminal step},
+	 * then I should not reveal any feature.
+	 *
+	 * @return the feature that I reveal, or {@code null} if none or if {@linkplain #isFailed() I am failed}
+	 */
+	EStructuralFeature getFeature();
+
+	/**
+	 * Drills down into me to reveal the next step in the nested reveal.
+	 *
+	 * @return the next step in the progressive reveal, or {@code null} if I am the
+	 *         {@linkplain RevealStepKind#TERMINAL terminal step}
+	 *
+	 * @throws IllegalStateException if {@linkplain #isFailed() I am failed}
+	 */
+	RevealStep drillDown();
+
+	/**
+	 * Reveal my {@linkplain #getDomainModel() domain object} in my
+	 * {@linkplain #getViewModel() view model element}.
+	 *
+	 * @throws IllegalStateException if {@linkplain #isFailed() I am failed}
+	 */
+	void reveal();
+
+	/**
+	 * Invoke an {@code action} on me if I am {@linkplain #isFailed() not failed}.
+	 *
+	 * @param action an action to invoke
+	 */
+	default void ifPresent(Consumer<? super RevealStep> action) {
+		if (!isFailed()) {
+			action.accept(this);
+		}
+	}
+
+	/**
+	 * Create an intermediate step that drills down into another step.
+	 *
+	 * @param viewModel the view model element that is rendered and revealed
+	 * @param domainModel the domain model object that is revealed in that view
+	 * @param nextStep the next step to drill down into in the reveal operation
+	 * @return the intermediate reveal step
+	 */
+	static RevealStep drillDown(VElement viewModel, EObject domainModel, RevealStep nextStep) {
+		return drillDown(viewModel, domainModel, nextStep, null);
+	}
+
+	/**
+	 * Create an intermediate step that reveals some kind of container and drills
+	 * down into another step.
+	 *
+	 * @param viewModel the view model element that is rendered and revealed
+	 * @param domainModel the domain model object that is revealed in that view
+	 * @param nextStep the next step to drill down into in the reveal operation
+	 * @param revealAction a rendering-specific action that actually reveals the rendered
+	 *            container element in the UI
+	 * @return the intermediate reveal step
+	 */
+	static RevealStep drillDown(VElement viewModel, EObject domainModel, RevealStep nextStep, Runnable revealAction) {
+		// Short-circuit to failure
+		return nextStep.isFailed() ? nextStep : new IntermediateStep(viewModel, domainModel, nextStep, revealAction);
+	}
+
+	/**
+	 * Create a terminal step that reveals the object in the editor UI.
+	 *
+	 * @param viewModel the view model element that is rendered and revealed
+	 * @param domainModel the domain model object that is revealed in that view
+	 * @param revealAction a rendering-specific action that actually reveals the rendered
+	 *            element that presents the object in the UI
+	 * @return the terminal reveal step
+	 */
+	static RevealStep reveal(VElement viewModel, EObject domainModel, Runnable revealAction) {
+		return reveal(viewModel, domainModel, null, revealAction);
+	}
+
+	/**
+	 * Create a terminal step that reveals a {@code feature} of the object in the editor UI.
+	 *
+	 * @param viewModel the view model element that is rendered and revealed
+	 * @param domainModel the domain model object that is revealed in that view
+	 * @param feature the feature of the domain model object that I specfically revealed
+	 * @param revealAction a rendering-specific action that actually reveals the rendered
+	 *            element that presents the object in the UI
+	 * @return the terminal reveal step
+	 */
+	static RevealStep reveal(VElement viewModel, EObject domainModel, EStructuralFeature feature,
+		Runnable revealAction) {
+
+		return new TerminalStep(viewModel, domainModel, feature, revealAction);
+	}
+
+	/**
+	 * Obtain a reveal failure step that signals absence of any UI element that can be
+	 * activated to reveal the object.
+	 *
+	 * @return the failed reveal step
+	 *
+	 * @see #FAILED
+	 */
+	static RevealStep fail() {
+		return FAILED;
+	}
+
+	/**
+	 * Obtain a predicate that matches reveal steps of a particular {@code type}.
+	 *
+	 * @param type the type of step to match
+	 * @return the predicate
+	 *
+	 * @see #getType()
+	 */
+	static Predicate<RevealStep> is(RevealStepKind type) {
+		return step -> step.getType() == type;
+	}
+
+	/**
+	 * Obtain a comparator that sorts reveal steps in preferential order by
+	 * {@link #getType type}, with the {@link RevealStepKind#TERMINAL} the most
+	 * preferred and {@link RevealStepKind#FAILED} the least preferred.
+	 *
+	 * @return the ordering
+	 *
+	 * @see #getType()
+	 */
+	static Comparator<RevealStep> preferredOrdering() {
+		return Comparator.comparing(RevealStep::getType);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealStepKind.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealStepKind.java
new file mode 100644
index 0000000..426b624
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/RevealStepKind.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+/**
+ * Enumeration of kinds of {@link RevealStep}.
+ *
+ * @since 1.22
+ * @see RevealStep#getType()
+ */
+public enum RevealStepKind {
+	/** A terminal step: it reveals the object. */
+	TERMINAL,
+	/** An intermediate step: there is more to reveal within a nested scope. */
+	INTERMEDIATE,
+	/** A failed step: the object is not there. */
+	FAILED;
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/TerminalStep.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/TerminalStep.java
new file mode 100644
index 0000000..34c7ec6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/reveal/TerminalStep.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.reveal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * The terminal step of a successful reveal.
+ *
+ * @since 1.22
+ */
+final class TerminalStep implements RevealStep {
+
+	private final VElement viewModel;
+	private final EObject domainModel;
+	private final EStructuralFeature feature;
+	private final Runnable revealAction;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param viewModel the view model in which I reveal the object
+	 * @param domainModel the object that I reveal
+	 * @param feature the feature of the domain model object that I specfically revealed
+	 * @param revealAction an action that reveals the object in the UI
+	 */
+	TerminalStep(VElement viewModel, EObject domainModel, EStructuralFeature feature, Runnable revealAction) {
+		super();
+
+		this.viewModel = viewModel;
+		this.domainModel = domainModel;
+		this.feature = feature;
+		this.revealAction = revealAction;
+	}
+
+	@Override
+	public RevealStepKind getType() {
+		return RevealStepKind.TERMINAL;
+	}
+
+	@Override
+	public VElement getViewModel() {
+		return viewModel;
+	}
+
+	@Override
+	public EObject getDomainModel() {
+		return domainModel;
+	}
+
+	@Override
+	public EStructuralFeature getFeature() {
+		return feature;
+	}
+
+	/**
+	 * There is no further step in the reveal process.
+	 *
+	 * @return {@code null}
+	 */
+	@Override
+	public RevealStep drillDown() {
+		return null;
+	}
+
+	@Override
+	public void reveal() {
+		if (revealAction != null) {
+			revealAction.run();
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/view/EMFFormsContextTracker.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/view/EMFFormsContextTracker.java
new file mode 100644
index 0000000..ac48819
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/view/EMFFormsContextTracker.java
@@ -0,0 +1,342 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.view;
+
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
+import java.util.Map;
+import java.util.Optional;
+import java.util.WeakHashMap;
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.common.TriConsumer;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+
+/**
+ * A tracker of the comings and goings of contexts in a hierarchy of {@link EMFFormsViewContext}s.
+ * This supplements the {@link EMFFormsContextListener} and {@link RootDomainModelChangeListener} APIs
+ * with specificity in the call-backs of which context in a hierarchy the call-back pertains to.
+ *
+ * @since 1.22
+ */
+public class EMFFormsContextTracker {
+
+	private final Map<EMFFormsViewContext, ContextListener> contextListeners = new WeakHashMap<>();
+	private final Function<EMFFormsViewContext, ContextListener> listenerFactory = ContextListener::new;
+
+	private final EMFFormsViewContext root;
+	private final ReportService reportService;
+
+	private boolean active;
+
+	private Consumer<? super EMFFormsViewContext> initializedHandler;
+	private Consumer<? super EMFFormsViewContext> disposedHandler;
+	private TriConsumer<? super EMFFormsViewContext, ? super VElement, ? super EMFFormsViewContext> addedHandler;
+	private TriConsumer<? super EMFFormsViewContext, ? super VElement, ? super EMFFormsViewContext> removedHandler;
+	private Consumer<? super EMFFormsViewContext> domainModelChangedHandler;
+
+	/**
+	 * Initializes me with the root context to track.
+	 *
+	 * @param context the root context
+	 */
+	public EMFFormsContextTracker(EMFFormsViewContext context) {
+		super();
+
+		root = context;
+		reportService = context.getService(ReportService.class);
+	}
+
+	/**
+	 * Query whether a {@code context} is the root of this tracker.
+	 *
+	 * @param context a context
+	 * @return whether it is the root of the context tree being tracked
+	 */
+	public boolean isRoot(EMFFormsViewContext context) {
+		return context == root;
+	}
+
+	/**
+	 * Add a call-back to handle the initialization of a new context, including the
+	 * {@linkplain #isRoot(EMFFormsViewContext) root context}.
+	 *
+	 * @param handler the call-back. It is invoked with the context that was initialized
+	 * @return myself, for convenience of call chaining
+	 */
+	public EMFFormsContextTracker onContextInitialized(Consumer<? super EMFFormsViewContext> handler) {
+		initializedHandler = handler;
+		return this;
+	}
+
+	/**
+	 * Add a call-back to handle the disposal of a context, including the {@linkplain #isRoot(EMFFormsViewContext) root
+	 * context}.
+	 *
+	 * @param handler the call-back. It is invoked with the context that was disposed
+	 * @return myself, for convenience of call chaining
+	 */
+	public EMFFormsContextTracker onContextDisposed(Consumer<? super EMFFormsViewContext> handler) {
+		disposedHandler = handler;
+		return this;
+	}
+
+	/**
+	 * Add a call-back to handle the replacement of a context's domain model, including the
+	 * {@linkplain #isRoot(EMFFormsViewContext) root context}.
+	 *
+	 * @param handler the call-back. It is invoked with the context that had its domain-model
+	 *            replaced
+	 * @return myself, for convenience of call chaining
+	 */
+	public EMFFormsContextTracker onDomainModelChanged(Consumer<? super EMFFormsViewContext> handler) {
+		domainModelChangedHandler = handler;
+		return this;
+	}
+
+	/**
+	 * Add a call-back to handle the addition of a new child context to a parent context.
+	 *
+	 * @param handler the call-back. It is invoked with the parent context, the parent element,
+	 *            and the child context that was added
+	 * @return myself, for convenience of call chaining
+	 */
+	public EMFFormsContextTracker onChildContextAdded(
+		TriConsumer<? super EMFFormsViewContext, ? super VElement, ? super EMFFormsViewContext> handler) {
+		addedHandler = handler;
+		return this;
+	}
+
+	/**
+	 * Add a call-back to handle the removal of a child context from a parent context.
+	 *
+	 * @param handler the call-back. It is invoked with the parent context, the parent element with
+	 *            which the child context was associated, and the child context that was removed
+	 * @return myself, for convenience of call chaining
+	 */
+	public EMFFormsContextTracker onChildContextRemoved(
+		TriConsumer<? super EMFFormsViewContext, ? super VElement, ? super EMFFormsViewContext> handler) {
+		removedHandler = handler;
+		return this;
+	}
+
+	/**
+	 * Start tracking my {@linkplain #isRoot(EMFFormsViewContext) root context}.
+	 */
+	public void open() {
+		if (!active) {
+			active = true;
+			handleChildContextAdded(null, null, root);
+		}
+	}
+
+	/**
+	 * Stop tracking contexts.
+	 */
+	public void close() {
+		if (active) {
+			active = false;
+
+			try {
+				contextListeners.values().forEach(ContextListener::dispose);
+			} finally {
+				contextListeners.clear();
+			}
+		}
+	}
+
+	private void handleChildContextAdded(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+
+		final ContextListener listener = getListener(childContext);
+		listener.addedToParent(true);
+		listener.setParentElement(parentElement);
+	}
+
+	private ContextListener getListener(EMFFormsViewContext context) {
+		return contextListeners.computeIfAbsent(context, listenerFactory);
+	}
+
+	private void handleChildContextRemoved(EMFFormsViewContext parentContext, VElement parentElement,
+		EMFFormsViewContext childContext) {
+		final ContextListener listener = getListener(childContext);
+		listener.addedToParent(false);
+		listener.setParentElement(null);
+	}
+
+	private void notifyContextInitialized(EMFFormsViewContext context) {
+		if (initializedHandler != null) {
+			safeAccept(initializedHandler, context);
+		}
+	}
+
+	private void notifyContextDisposed(EMFFormsViewContext context) {
+		if (disposedHandler != null) {
+			safeAccept(disposedHandler, context);
+		}
+	}
+
+	private void notifyDomainModelChanged(EMFFormsViewContext context) {
+		if (domainModelChangedHandler != null) {
+			safeAccept(domainModelChangedHandler, context);
+		}
+	}
+
+	private void notifyContextAdded(EMFFormsViewContext parent, VElement parentElement, EMFFormsViewContext child) {
+		if (addedHandler != null) {
+			safeAccept(addedHandler, parent, parentElement, child);
+		}
+	}
+
+	private void notifyContextRemoved(EMFFormsViewContext parent, VElement parentElement, EMFFormsViewContext child) {
+		if (removedHandler != null) {
+			safeAccept(removedHandler, parent, parentElement, child);
+		}
+	}
+
+	private <T> void safeAccept(Consumer<? super T> consumer, T t) {
+		try {
+			consumer.accept(t);
+			// CHECKSTYLE.OFF: IllegalCatch
+		} catch (final Exception e) {
+			handleException(e);
+			// CHECKSTYLE.ON: IllegalCatch
+		} catch (final LinkageError e) {
+			handleException(e);
+		} catch (final AssertionError e) {
+			handleException(e);
+		}
+	}
+
+	private <T, U, V> void safeAccept(TriConsumer<? super T, ? super U, ? super V> consumer, T t, U u, V v) {
+		try {
+			consumer.accept(t, u, v);
+			// CHECKSTYLE.OFF: IllegalCatch
+		} catch (final Exception e) {
+			handleException(e);
+			// CHECKSTYLE.ON: IllegalCatch
+		} catch (final LinkageError e) {
+			handleException(e);
+		} catch (final AssertionError e) {
+			handleException(e);
+		}
+	}
+
+	private void handleException(Throwable t) {
+		reportService.report(new AbstractReport(t, "Unhandled exception in EMFFormsContextTracker call-back")); //$NON-NLS-1$
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Encapsulation of a context with a listener to its lifecycle events.
+	 */
+	private final class ContextListener implements EMFFormsContextListener {
+		private final RootDomainModelChangeListener domainModelChangeListener = this::domainModelChanged;
+		private final Reference<EMFFormsViewContext> context;
+		private Reference<VElement> parentElement;
+		private boolean addedToParent;
+
+		ContextListener(EMFFormsViewContext context) {
+			super();
+
+			this.context = new WeakReference<>(context);
+			context.registerEMFFormsContextListener(this);
+			context.registerRootDomainModelChangeListener(domainModelChangeListener);
+		}
+
+		// Note that if we're invoking this method, it's because there are events to handle
+		// involving the context, so the reference cannot have been cleared
+		private Optional<EMFFormsViewContext> getContext() {
+			return Optional.ofNullable(context.get());
+		}
+
+		void dispose() {
+			getContext().ifPresent(ctx -> {
+				ctx.unregisterRootDomainModelChangeListener(domainModelChangeListener);
+				ctx.unregisterEMFFormsContextListener(this);
+			});
+		}
+
+		@Override
+		public void contextInitialised() {
+			getContext().ifPresent(EMFFormsContextTracker.this::notifyContextInitialized);
+		}
+
+		@Override
+		public void contextDispose() {
+			getContext().ifPresent(EMFFormsContextTracker.this::notifyContextDisposed);
+		}
+
+		@Override
+		public void childContextAdded(VElement parentElement, EMFFormsViewContext childContext) {
+			// Check if we already processed the add
+			if (getListener(childContext).isAddedToParent()) {
+				return;
+			}
+
+			getContext().ifPresent(ctx -> {
+				notifyContextAdded(ctx, parentElement, childContext);
+				handleChildContextAdded(ctx, parentElement, childContext);
+			});
+		}
+
+		@Override
+		public void childContextDisposed(EMFFormsViewContext childContext) {
+			// Check if we already processed the disposal
+			if (!getListener(childContext).isAddedToParent()) {
+				return;
+			}
+
+			getContext().ifPresent(ctx -> {
+				final VElement parentElement = getListener(childContext).getParentElement();
+				handleChildContextRemoved(ctx, parentElement, childContext);
+				notifyContextRemoved(ctx, parentElement, childContext);
+			});
+		}
+
+		void domainModelChanged() {
+			getContext().ifPresent(EMFFormsContextTracker.this::notifyDomainModelChanged);
+		}
+
+		void addedToParent(boolean added) {
+			addedToParent = added;
+		}
+
+		/**
+		 * Is my context currently added to (attached to) its parent? Note that the root
+		 * context is considered as implicitly added to its null parent.
+		 *
+		 * @return whether my context is currently known by its parent as a child of it
+		 */
+		boolean isAddedToParent() {
+			return addedToParent;
+		}
+
+		VElement getParentElement() {
+			return parentElement != null ? parentElement.get() : null;
+		}
+
+		void setParentElement(VElement parentElement) {
+			this.parentElement = parentElement != null ? new WeakReference<>(parentElement) : null;
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.datatemplate.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.datatemplate.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 048a654..89937a9 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.model.edit;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.datatemplate.provider.DatatemplateEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.datatemplate.provider;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.datatemplate.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model.edit/pom.xml b/bundles/org.eclipse.emfforms.datatemplate.model.edit/pom.xml
index 97745e0..63f53cf 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model.edit/src/org/eclipse/emfforms/datatemplate/provider/TemplateItemProvider.java b/bundles/org.eclipse.emfforms.datatemplate.model.edit/src/org/eclipse/emfforms/datatemplate/provider/TemplateItemProvider.java
index dcbf04c..8e5689b 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model.edit/src/org/eclipse/emfforms/datatemplate/provider/TemplateItemProvider.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model.edit/src/org/eclipse/emfforms/datatemplate/provider/TemplateItemProvider.java
@@ -39,7 +39,7 @@
  * This is the item provider adapter for a {@link org.eclipse.emfforms.datatemplate.Template} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
- *
+ * 
  * @generated
  */
 public class TemplateItemProvider
@@ -54,7 +54,7 @@
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public TemplateItemProvider(AdapterFactory adapterFactory) {
@@ -65,7 +65,7 @@
 	 * This returns the property descriptors for the adapted class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -83,7 +83,7 @@
 	 * This adds a property descriptor for the Name feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addNamePropertyDescriptor(Object object) {
@@ -105,7 +105,7 @@
 	 * This adds a property descriptor for the Instance feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addInstancePropertyDescriptor(Object object) {
@@ -129,7 +129,7 @@
 	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -144,7 +144,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -159,7 +159,7 @@
 	 * This returns Template.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -185,7 +185,7 @@
 	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -208,7 +208,7 @@
 	 * that can be created under this object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -220,7 +220,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.emfforms.datatemplate.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.datatemplate.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c3e8af0..350e210 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/META-INF/MANIFEST.MF
@@ -2,18 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.datatemplate;version="1.21.0";uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util",
- org.eclipse.emfforms.datatemplate.impl;version="1.21.0";x-internal:=true;
+Export-Package: org.eclipse.emfforms.datatemplate;version="1.22.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util",
+ org.eclipse.emfforms.datatemplate.impl;version="1.22.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.21.0";
+   org.eclipse.emfforms.datatemplate";x-internal:=true,
+ org.eclipse.emfforms.datatemplate.util;version="1.22.0";
   uses:="org.eclipse.emf.ecore,
    org.eclipse.emf.common.notify,
    org.eclipse.emf.common.notify.impl,
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.ecore b/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.ecore
index 74945ea..fd48b05 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.ecore
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.ecore
@@ -4,7 +4,8 @@
     nsPrefix="org.eclipse.emfforms.datatemplate.model">
   <eClassifiers xsi:type="ecore:EClass" name="Template">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="instance" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TemplateCollection">
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel b/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel
index a5b5a73..e2f85e2 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;EclipseSource Muenchen GmbH - initial API and implementation"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License 2.0&#xA;which accompanies this distribution, and is available at&#xA;https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;&#xA;Contributors:&#xA;EclipseSource Muenchen GmbH - initial API and implementation"
     modelDirectory="/org.eclipse.emfforms.datatemplate.model/src" modelPluginID="org.eclipse.emfforms.datatemplate.model"
     modelName="DataTemplate" modelPluginClass="" editPluginClass="org.eclipse.emfforms.datatemplate.provider.DatatemplateEditPlugin"
     editorPluginClass="org.eclipse.emfforms.datatemplate.presentation.DatatemplateEditorPlugin"
     nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+    codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0"
     copyrightFields="false" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
     operationReflection="true" importOrganizing="true" cleanup="true">
   <foreignModel>datatemplate.ecore</foreignModel>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/pom.xml b/bundles/org.eclipse.emfforms.datatemplate.model/pom.xml
index 507aa7e..6449a18 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplateFactory.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplateFactory.java
index e00c90e..51287fc 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplateFactory.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplateFactory.java
@@ -20,7 +20,7 @@
  * The <b>Factory</b> for the model.
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
- * 
+ *
  * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage
  * @generated
  */
@@ -29,7 +29,7 @@
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	DataTemplateFactory eINSTANCE = org.eclipse.emfforms.datatemplate.impl.DataTemplateFactoryImpl.init();
@@ -38,7 +38,7 @@
 	 * Returns a new object of class '<em>Template</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return a new object of class '<em>Template</em>'.
 	 * @generated
 	 */
@@ -48,7 +48,7 @@
 	 * Returns a new object of class '<em>Template Collection</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return a new object of class '<em>Template Collection</em>'.
 	 * @generated
 	 */
@@ -58,7 +58,7 @@
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/Template.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/Template.java
index 5f00133..50aea30 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/Template.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/Template.java
@@ -41,7 +41,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Name</em>' attribute.
 	 * @see #setName(String)
 	 * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage#getTemplate_Name()
@@ -54,7 +54,7 @@
 	 * Sets the value of the '{@link org.eclipse.emfforms.datatemplate.Template#getName <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param value the new value of the '<em>Name</em>' attribute.
 	 * @see #getName()
 	 * @generated
@@ -69,11 +69,11 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Instance</em>' containment reference.
 	 * @see #setInstance(EObject)
 	 * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage#getTemplate_Instance()
-	 * @model containment="true"
+	 * @model containment="true" required="true"
 	 * @generated
 	 */
 	EObject getInstance();
@@ -83,7 +83,7 @@
 	 * containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param value the new value of the '<em>Instance</em>' containment reference.
 	 * @see #getInstance()
 	 * @generated
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/TemplateCollection.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/TemplateCollection.java
index 20ff428..ff56dca 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/TemplateCollection.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/TemplateCollection.java
@@ -42,7 +42,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Templates</em>' containment reference list.
 	 * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage#getTemplateCollection_Templates()
 	 * @model containment="true"
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplateFactoryImpl.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplateFactoryImpl.java
index 0b15514..1b26586 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplateFactoryImpl.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplateFactoryImpl.java
@@ -27,7 +27,7 @@
  * <!-- begin-user-doc -->
  * An implementation of the model <b>Factory</b>.
  * <!-- end-user-doc -->
- * 
+ *
  * @generated
  */
 public class DataTemplateFactoryImpl extends EFactoryImpl implements DataTemplateFactory {
@@ -35,7 +35,7 @@
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public static DataTemplateFactory init() {
@@ -55,7 +55,7 @@
 	 * Creates an instance of the factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public DataTemplateFactoryImpl() {
@@ -65,7 +65,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -76,14 +76,14 @@
 		case DataTemplatePackage.TEMPLATE_COLLECTION:
 			return createTemplateCollection();
 		default:
-			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -95,7 +95,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -107,7 +107,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -118,7 +118,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @deprecated
 	 * @generated
 	 */
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplatePackageImpl.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplatePackageImpl.java
index ddc65b5..b2bd5e1 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplatePackageImpl.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/DataTemplatePackageImpl.java
@@ -28,14 +28,14 @@
  * <!-- begin-user-doc -->
  * An implementation of the model <b>Package</b>.
  * <!-- end-user-doc -->
- * 
+ *
  * @generated
  */
 public class DataTemplatePackageImpl extends EPackageImpl implements DataTemplatePackage {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	private EClass templateEClass = null;
@@ -43,7 +43,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	private EClass templateCollectionEClass = null;
@@ -59,7 +59,7 @@
 	 * if one already exists.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage#eNS_URI
 	 * @see #init()
@@ -72,7 +72,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	private static boolean isInited = false;
@@ -85,7 +85,7 @@
 	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #eNS_URI
 	 * @see #createPackageContents()
 	 * @see #initializePackageContents()
@@ -97,9 +97,10 @@
 		}
 
 		// Obtain or create and register package
-		final DataTemplatePackageImpl theDataTemplatePackage = (DataTemplatePackageImpl) (EPackage.Registry.INSTANCE
-			.get(eNS_URI) instanceof DataTemplatePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
-				: new DataTemplatePackageImpl());
+		final Object registeredDataTemplatePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		final DataTemplatePackageImpl theDataTemplatePackage = registeredDataTemplatePackage instanceof DataTemplatePackageImpl
+			? (DataTemplatePackageImpl) registeredDataTemplatePackage
+			: new DataTemplatePackageImpl();
 
 		isInited = true;
 
@@ -123,7 +124,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -134,7 +135,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -145,7 +146,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -156,7 +157,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -167,7 +168,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -178,7 +179,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -189,7 +190,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	private boolean isCreated = false;
@@ -199,7 +200,7 @@
 	 * guarded to have no affect on any invocation but its first.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public void createPackageContents() {
@@ -220,7 +221,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	private boolean isInitialized = false;
@@ -230,7 +231,7 @@
 	 * method is guarded to have no affect on any invocation but its first.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public void initializePackageContents() {
@@ -255,17 +256,17 @@
 		// Add supertypes to classes
 
 		// Initialize classes, features, and operations; add parameters
-		initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE,
+		initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
 			IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTemplate_Name(), ecorePackage.getEString(), "name", null, 0, 1, Template.class, !IS_TRANSIENT,
+		initEAttribute(getTemplate_Name(), ecorePackage.getEString(), "name", null, 0, 1, Template.class, !IS_TRANSIENT, //$NON-NLS-1$
 			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getTemplate_Instance(), theEcorePackage.getEObject(), null, "instance", null, 0, 1,
+		initEReference(getTemplate_Instance(), theEcorePackage.getEObject(), null, "instance", null, 1, 1, //$NON-NLS-1$
 			Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
 			!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(templateCollectionEClass, TemplateCollection.class, "TemplateCollection", !IS_ABSTRACT,
+		initEClass(templateCollectionEClass, TemplateCollection.class, "TemplateCollection", !IS_ABSTRACT, //$NON-NLS-1$
 			!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTemplateCollection_Templates(), getTemplate(), null, "templates", null, 0, -1,
+		initEReference(getTemplateCollection_Templates(), getTemplate(), null, "templates", null, 0, -1, //$NON-NLS-1$
 			TemplateCollection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
 			!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateCollectionImpl.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateCollectionImpl.java
index eebb506..ca79dd4 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateCollectionImpl.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateCollectionImpl.java
@@ -44,7 +44,7 @@
 	 * The cached value of the '{@link #getTemplates() <em>Templates</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getTemplates()
 	 * @generated
 	 * @ordered
@@ -54,7 +54,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected TemplateCollectionImpl() {
@@ -64,7 +64,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -75,13 +75,13 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public EList<Template> getTemplates() {
 		if (templates == null) {
-			templates = new EObjectContainmentEList<Template>(Template.class, this,
+			templates = new EObjectContainmentEList<>(Template.class, this,
 				DataTemplatePackage.TEMPLATE_COLLECTION__TEMPLATES);
 		}
 		return templates;
@@ -90,7 +90,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -105,7 +105,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -120,7 +120,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@SuppressWarnings("unchecked")
@@ -138,7 +138,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -154,7 +154,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateImpl.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateImpl.java
index 538070c..a9f1fb5 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateImpl.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/impl/TemplateImpl.java
@@ -42,7 +42,7 @@
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getName()
 	 * @generated
 	 * @ordered
@@ -53,7 +53,7 @@
 	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getName()
 	 * @generated
 	 * @ordered
@@ -64,7 +64,7 @@
 	 * The cached value of the '{@link #getInstance() <em>Instance</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getInstance()
 	 * @generated
 	 * @ordered
@@ -74,7 +74,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected TemplateImpl() {
@@ -84,7 +84,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -95,7 +95,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -106,7 +106,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -121,7 +121,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -132,7 +132,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public NotificationChain basicSetInstance(EObject newInstance, NotificationChain msgs) {
@@ -153,7 +153,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -181,7 +181,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -196,7 +196,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -213,7 +213,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -232,7 +232,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -251,7 +251,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -268,7 +268,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -277,8 +277,8 @@
 			return super.toString();
 		}
 
-		final StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
+		final StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (name: "); //$NON-NLS-1$
 		result.append(name);
 		result.append(')');
 		return result.toString();
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateAdapterFactory.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateAdapterFactory.java
index 8306da1..038d5ba 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateAdapterFactory.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateAdapterFactory.java
@@ -26,7 +26,7 @@
  * The <b>Adapter Factory</b> for the model.
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
- * 
+ *
  * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage
  * @generated
  */
@@ -35,7 +35,7 @@
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected static DataTemplatePackage modelPackage;
@@ -44,7 +44,7 @@
 	 * Creates an instance of the adapter factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public DataTemplateAdapterFactory() {
@@ -59,7 +59,7 @@
 	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance
 	 * object of the model.
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return whether this factory is applicable for the type of the object.
 	 * @generated
 	 */
@@ -78,7 +78,7 @@
 	 * The switch that delegates to the <code>createXXX</code> methods.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected DataTemplateSwitch<Adapter> modelSwitch = new DataTemplateSwitch<Adapter>() {
@@ -102,7 +102,7 @@
 	 * Creates an adapter for the <code>target</code>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param target the object to adapt.
 	 * @return the adapter for the <code>target</code>.
 	 * @generated
@@ -119,7 +119,7 @@
 	 * 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.emfforms.datatemplate.Template
 	 * @generated
@@ -135,7 +135,7 @@
 	 * 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.emfforms.datatemplate.TemplateCollection
 	 * @generated
@@ -149,7 +149,7 @@
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the new adapter.
 	 * @generated
 	 */
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateSwitch.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateSwitch.java
index 23eb2e5..4a68a4e 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateSwitch.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/util/DataTemplateSwitch.java
@@ -30,7 +30,7 @@
  * until a non-null result is returned,
  * which is the result of the switch.
  * <!-- end-user-doc -->
- * 
+ *
  * @see org.eclipse.emfforms.datatemplate.DataTemplatePackage
  * @generated
  */
@@ -39,7 +39,7 @@
 	 * The cached model package
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected static DataTemplatePackage modelPackage;
@@ -48,7 +48,7 @@
 	 * Creates an instance of the switch.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public DataTemplateSwitch() {
@@ -61,7 +61,7 @@
 	 * Checks whether this is a switch for the given package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
@@ -76,7 +76,7 @@
 	 * result.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the first non-null result returned by a <code>caseXXX</code> call.
 	 * @generated
 	 */
@@ -110,7 +110,7 @@
 	 * 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>Template</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
@@ -126,7 +126,7 @@
 	 * 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>Template Collection</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
@@ -142,7 +142,7 @@
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch, but this is the last case anyway.
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param object the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
diff --git a/bundles/org.eclipse.emfforms.datatemplate.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.datatemplate.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.datatemplate.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8d49190..443eb32 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,42 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.tooling;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.datatemplate.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 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.21.0,1.22.0)",
- org.eclipse.emfforms.bazaar;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.editor;version="[1.21.0,1.22.0)",
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.emf.ecp.ui.view.swt.reference;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.editor;version="[1.22.0,1.23.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/pom.xml b/bundles/org.eclipse.emfforms.datatemplate.tooling/pom.xml
index 15ff64c..6aab6d9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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/TemplateInstanceRenderer.java b/bundles/org.eclipse.emfforms.datatemplate.tooling/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer.java
index 7fa42db..946cc60 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.tooling/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.tooling/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer.java
@@ -22,7 +22,6 @@
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
-import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.swt.widgets.Composite;
@@ -48,16 +47,15 @@
 	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
 	 * @param localizationService The {@link EMFFormsLocalizationService}
 	 * @param imageRegistryService The {@link ImageRegistryService}
-	 * @param emfFormsEditSuppport The {@link EMFFormsEditSupport}
 	 */
 	@Inject
 	// CHECKSTYLE:OFF: ParameterNumber
 	public TemplateInstanceRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
 		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
 		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsLocalizationService localizationService,
-		ImageRegistryService imageRegistryService, EMFFormsEditSupport emfFormsEditSuppport) {
+		ImageRegistryService imageRegistryService) {
 		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
-			localizationService, imageRegistryService, emfFormsEditSuppport);
+			localizationService, imageRegistryService);
 	}
 
 	// CHECKSTYLE:ON
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3fb9230..4406ab2 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,55 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Ecore Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor.ecore;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor.ecore;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.ecore.actions;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.ecore.controls;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.ecore.helpers;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.ecore.referenceservices;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.editor.ecore;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.actions;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.controls;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.helpers;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.referenceservices;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
- org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.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
+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,
+ OSGI-INF/typedElementBoundsRevealProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
- org.eclipse.emfforms.bazaar;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core.di;version="[1.21.0,1.22.0)";resolution:=optional,
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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/OSGI-INF/typedElementBoundsRevealProvider.xml b/bundles/org.eclipse.emfforms.editor.ecore/OSGI-INF/typedElementBoundsRevealProvider.xml
new file mode 100644
index 0000000..6621d6d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.editor.ecore/OSGI-INF/typedElementBoundsRevealProvider.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="typedElementBoundsRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.editor.ecore.helpers.TypedElementBoundsRevealProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/pom.xml b/bundles/org.eclipse.emfforms.editor.ecore/pom.xml
index 2cb391f..79c7182 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 3d7413f..c03f9ca 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
@@ -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 2.0
@@ -10,10 +10,13 @@
  *
  * Contributors:
  * cleme_000 - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.internal.editor.ecore;
 
 import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.BasicDetailViewCache;
 import org.eclipse.emfforms.spi.editor.GenericEditor;
 import org.eclipse.emfforms.spi.editor.InitializeChildCallback;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailComposite;
@@ -46,8 +49,13 @@
 		final EcoreEditorTMDCustomization buildBehaviour = new EcoreEditorTMDCustomization(createElementCallback,
 			(Notifier) editorInput, (EcoreDiagnosticCache) getDiagnosticCache());
 		buildBehaviour.setTree(createTreeViewerBuilder());
-		return TreeMasterDetailSWTFactory.createTreeMasterDetail(composite, SWT.NONE, editorInput,
+		buildBehaviour.setReadOnly(!isEditable(getEditorInput()));
+
+		final TreeMasterDetailComposite result = TreeMasterDetailSWTFactory.createTreeMasterDetail(composite, SWT.NONE,
+			editorInput,
 			buildBehaviour);
+		result.setCache(new BasicDetailViewCache(EcorePackage.eINSTANCE.getEClassifiers().size()));
+		return result;
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/controls/TypedElementBoundsRenderer.java b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/controls/TypedElementBoundsRenderer.java
index 9805a25..f3b2a53 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/controls/TypedElementBoundsRenderer.java
+++ b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/controls/TypedElementBoundsRenderer.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 2.0
@@ -11,6 +11,7 @@
  * Contributors:
  * Clemens Elflein - initial API and implementation
  * Alexandra Buzila - refactoring
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.internal.editor.ecore.controls;
 
@@ -26,6 +27,7 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.databinding.edit.EMFEditObservables;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer;
@@ -64,6 +66,10 @@
  */
 public class TypedElementBoundsRenderer extends AbstractControlSWTRenderer<VControl> {
 
+	private Spinner lowerBound;
+	private Spinner upperBound;
+	private Button unbounded;
+
 	/**
 	 * Default constructor.
 	 *
@@ -183,16 +189,16 @@
 		GridDataFactory.fillDefaults().grab(true, false)
 			.align(SWT.FILL, SWT.BEGINNING).applyTo(main);
 
-		final Spinner lowerBound = new Spinner(main, SWT.BORDER);
+		lowerBound = new Spinner(main, SWT.BORDER);
 		lowerBound.setMaximum(Integer.MAX_VALUE);
 		lowerBound.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, true));
 
-		final Spinner upperBound = new Spinner(main, SWT.BORDER);
+		upperBound = new Spinner(main, SWT.BORDER);
 		upperBound.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, true));
 		upperBound.setMinimum(-1);
 		upperBound.setMaximum(Integer.MAX_VALUE);
 
-		final Button unbounded = new Button(main, SWT.CHECK);
+		unbounded = new Button(main, SWT.CHECK);
 		unbounded.setText(getLocalizedString(Messages.TypedElementBoundsRenderer_Unbounded));
 
 		createDataBindings(lowerBound, upperBound, unbounded);
@@ -375,4 +381,26 @@
 	protected void rootDomainModelChanged() throws DatabindingFailedException {
 		// TODO change implementation to use databinding
 	}
+
+	/**
+	 * Reveal the given {@code feature} in my controls.
+	 *
+	 * @param feature the feature to reveal (either the upper or the lower bound)
+	 *
+	 * @since 1.22
+	 */
+	public void reveal(EStructuralFeature feature) {
+		if (feature == EcorePackage.Literals.ETYPED_ELEMENT__UPPER_BOUND) {
+			if (upperBound != null && upperBound.isEnabled()) {
+				scrollToReveal(upperBound);
+			} else if (unbounded != null && unbounded.isEnabled()) {
+				scrollToReveal(unbounded);
+			}
+		} else if (feature == EcorePackage.Literals.ETYPED_ELEMENT__LOWER_BOUND) {
+			if (lowerBound != null && lowerBound.isEnabled()) {
+				scrollToReveal(lowerBound);
+			}
+		}
+	}
+
 }
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/helpers/TypedElementBoundsRevealProvider.java b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/helpers/TypedElementBoundsRevealProvider.java
new file mode 100644
index 0000000..0975755
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/helpers/TypedElementBoundsRevealProvider.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.editor.ecore.helpers;
+
+import static java.util.Arrays.asList;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.internal.editor.ecore.controls.TypedElementBoundsRenderer;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Specific reveal provider for the bounds control of typed elements, which accounts
+ * for the fact that this control edits two features, one of which (the lower bound)
+ * is not mapped in the settings mapper service.
+ *
+ * @since 1.22
+ */
+@Component(name = "typedElementBoundsRevealProvider")
+public class TypedElementBoundsRevealProvider implements EMFFormsRevealProvider {
+
+	private final Set<EStructuralFeature> features = new HashSet<>(asList(
+		EcorePackage.Literals.ETYPED_ELEMENT__LOWER_BOUND,
+		EcorePackage.Literals.ETYPED_ELEMENT__UPPER_BOUND));
+
+	private final Double bid = 20.0;
+
+	/**
+	 * Initializes me.
+	 */
+	public TypedElementBoundsRevealProvider() {
+		super();
+	}
+
+	/**
+	 * I can reveal a control that renders the upper or lower bound of an Ecore typed element.
+	 *
+	 * @param control the control
+	 * @param feature the feature to be revealed
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VControl control, EStructuralFeature feature) {
+		return control.eClass() == VViewPackage.Literals.CONTROL && features.contains(feature)
+			? bid
+			: null;
+	}
+
+	/**
+	 * Reveal the given {@code feature} of an {@code owner} in the bounds {@code renderer}.
+	 *
+	 * @param renderer the bounds renderer
+	 * @param owner the typed element
+	 * @param feature the bounds feature to reveal
+	 * @return the reveal step
+	 */
+	@Create
+	public RevealStep reveal(@Renderer TypedElementBoundsRenderer renderer, EObject owner,
+		EStructuralFeature feature) {
+
+		return RevealStep.reveal(renderer.getVElement(), owner, feature, () -> renderer.reveal(feature));
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel.util/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.editor.genmodel.util/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel.util/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.editor.genmodel.util/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ee466b9..e5092ce 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.editor.genmodel.util;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.genmodel.util;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.genmodel.util.handler;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.editor.genmodel.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.util.handler;version="1.22.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 9663240..6ad64c7 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.editor.genmodel/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.editor.genmodel/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9906072..71d4cfc 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true;uses:="org.eclipse.emfforms.spi.editor",
- org.eclipse.emfforms.internal.editor.genmodel.service;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.genmodel.toolbaractions;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.genmodel.util;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.editor.genmodel;version="1.22.0";x-internal:=true;uses:="org.eclipse.emfforms.spi.editor",
+ org.eclipse.emfforms.internal.editor.genmodel.service;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.toolbaractions;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.util;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.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 0c03bbd..76e5bf3 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.editor.viewmodel/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6222c71..a70be81 100644
--- a/bundles/org.eclipse.emfforms.editor.viewmodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor.viewmodel/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewModel Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor.viewmodel;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor.viewmodel;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3"
+Export-Package: org.eclipse.emfforms.internal.editor.viewmodel;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/org.eclipse.emfforms.editor.viewmodel/pom.xml b/bundles/org.eclipse.emfforms.editor.viewmodel/pom.xml
index 1fc29ad..dad429f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.editor/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.editor/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.editor/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF
index 547c449..54b2ce5 100644
--- a/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF
@@ -2,36 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Activator: org.eclipse.emfforms.internal.editor.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.handlers;version="1.21.0";;x-internal:=true;x-friends:="org.eclipse.emfforms.editor.ecore",
- org.eclipse.emfforms.internal.editor.toolbaractions;version="1.21.0";;x-internal:=true;x-internal:=true,
- org.eclipse.emfforms.internal.editor.ui;version="1.21.0";x-friends:="org.eclipse.emfforms.editor.ecore",
- org.eclipse.emfforms.spi.editor;version="1.21.0",
- org.eclipse.emfforms.spi.editor.handler;version="1.21.0",
- org.eclipse.emfforms.spi.editor.helpers;version="1.21.0";;x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor.genmodel",
- org.eclipse.emfforms.spi.editor.messages;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.editor;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.handlers;version="1.22.0";;x-internal:=true;x-friends:="org.eclipse.emfforms.editor.ecore",
+ org.eclipse.emfforms.internal.editor.toolbaractions;version="1.22.0";;x-internal:=true;x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ui;version="1.22.0";x-friends:="org.eclipse.emfforms.editor.ecore",
+ org.eclipse.emfforms.spi.editor;version="1.22.0",
+ org.eclipse.emfforms.spi.editor.handler;version="1.22.0",
+ org.eclipse.emfforms.spi.editor.helpers;version="1.22.0";;x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor.genmodel",
+ org.eclipse.emfforms.spi.editor.messages;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.swt.core.di;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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 bfa848f..d0acd81 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 b341f2e..289058e 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
@@ -11,7 +11,7 @@
  * Contributors:
  * Clemens Elflein - initial API and implementation
  * Johannes Faltermeier - initial API and implementation
- * Christian W. Damus - bug 545460
+ * Christian W. Damus - bugs 545460, 548592
  ******************************************************************************/
 
 package org.eclipse.emfforms.spi.editor;
@@ -25,7 +25,9 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.Objects;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
@@ -44,7 +46,6 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobFunction;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.emf.common.command.BasicCommandStack;
 import org.eclipse.emf.common.command.CommandStackListener;
@@ -53,10 +54,13 @@
 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.EStructuralFeature;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.xmi.XMLResource;
 import org.eclipse.emf.ecp.common.spi.ChildrenDescriptorCollector;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
 import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
@@ -124,6 +128,8 @@
 
 	private static final String RESOURCE_URI = "RESOURCE_URI"; //$NON-NLS-1$
 
+	private static final String FEATURE_URI = "FEATURE_URI"; //$NON-NLS-1$
+
 	private static final String ITOOLBAR_ACTIONS_ID = "org.eclipse.emfforms.editor.toolbarActions"; //$NON-NLS-1$
 
 	/** The Resource loaded from the provided EditorInput. */
@@ -139,7 +145,6 @@
 	 * True, if there were changes in the filesystem while the editor was in the background and the changes could not be
 	 * applied to current view.
 	 */
-
 	private boolean filesChangedWithConflict;
 
 	private final IPartListener partListener = new GenericEditorActivationListener();
@@ -148,7 +153,7 @@
 
 	private final MarkerHelper markerHelper = new GenericEditorMarkerHelper();
 
-	private final List<Job> markerJobs = new CopyOnWriteArrayList<Job>();
+	private final AtomicReference<Job> markerJob = new AtomicReference<>();
 
 	private DiagnosticCache cache;
 
@@ -206,41 +211,60 @@
 	protected void handleResourceChange(final Collection<Resource> changedResources,
 		final Collection<Resource> removedResources) {
 		if (!isDirty()) {
-			getSite().getShell().getDisplay().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					if (resourceSet == null || rootView.isDisposed()) {
-						return;
-					}
-					reloading = true;
-					removeResources(removedResources);
-					for (final Resource changed : changedResources) {
-						// We need to get the resource by its URI from the resource set because otherwise proxies will
-						// not be able to resolve after the reload. This is the case because the given resources are not
-						// part of this editor's resource set.
-						final Resource toReload = resourceSet.getResource(changed.getURI(), false);
-						if (toReload == null) {
-							continue;
-						}
-						toReload.unload();
-						try {
-							toReload.load(null);
-						} catch (final IOException ex) {
-						}
-					}
-
-					rootView.getSelectionProvider().refresh();
-
-					reloading = false;
-					getCommandStack().flush();
-					initMarkers();
+			getSite().getShell().getDisplay().asyncExec(() -> {
+				if (resourceSet == null || rootView.isDisposed()) {
+					return;
 				}
+				reloading = true;
+				removeResources(removedResources);
+
+				// We need to get every changed resource by its URI from the resource set because otherwise proxies will
+				// not be able to resolve after the reload. This is the case because the given resources are not
+				// part of this editor's resource set.
+				final List<Resource> toReload = changedResources.stream()
+					.map(changed -> resourceSet.getResource(changed.getURI(), false))
+					.filter(Objects::nonNull)
+					.collect(Collectors.toList());
+
+				reloadResources(toReload);
+				reloading = false;
+				getCommandStack().flush();
+				initMarkers();
 			});
 		} else {
 			filesChangedWithConflict = true;
 		}
 	}
 
+	/**
+	 * Reloads the given resources and refreshes the tree accordingly.
+	 *
+	 * @param resources The {@link Resource Resources} to reload
+	 * @since 1.22
+	 */
+	protected void reloadResources(Collection<Resource> resources) {
+		for (final Resource r : resources) {
+			r.unload();
+			try {
+				r.load(getResourceLoadOptions());
+			} catch (final IOException e) {
+			}
+		}
+		ResourceSetHelpers.resolveAllProxies(resourceSet);
+		refreshTreeAfterResourceChange();
+	}
+
+	/**
+	 * Called after a resource change to refresh the tree master detail of the editor. By default only the tree is
+	 * refreshed. If the tree's input is not this editor's resource but only derived from it, this method should be
+	 * overridden to reset the tree's input.
+	 *
+	 * @since 1.22
+	 */
+	protected void refreshTreeAfterResourceChange() {
+		rootView.refresh();
+	}
+
 	private boolean discardChanges() {
 		return MessageDialog.openQuestion(Display.getCurrent().getActiveShell(),
 			Messages.GenericEditor_DiscardChangesTitle,
@@ -325,30 +349,25 @@
 	}
 
 	private synchronized void initMarkers() {
-		if (getDiagnosticCache() == null || reloading) {
+		if (getDiagnosticCache() == null || reloading || markerJob.get() != null) {
 			return;
 		}
-		if (markerJobs.size() > 1) {
-			/* we already enqueued an update job which is not running yet */
-			return;
-		}
-		final Job job = Job.create(Messages.GenericEditor_ValidationMarkersJobName, new IJobFunction() {
 
-			@Override
-			public IStatus run(IProgressMonitor monitor) {
-				try {
-					adjustMarkers(monitor);
-					return Status.OK_STATUS;
-				} catch (final CoreException ex) {
-					return new Status(IStatus.ERROR, "org.eclipse.emfforms.editor", ex.getMessage(), ex); //$NON-NLS-1$
-				} finally {
-					markerJobs.remove(0);
-				}
+		final Job job = Job.create(Messages.GenericEditor_ValidationMarkersJobName, monitor -> {
+			try {
+				adjustMarkers(monitor);
+				return Status.OK_STATUS;
+			} catch (final CoreException ex) {
+				return ex.getStatus();
+			} finally {
+				markerJob.compareAndSet(Job.getJobManager().currentJob(), null);
 			}
 		});
 		job.setPriority(Job.SHORT);
-		markerJobs.add(job);
-		job.schedule();
+
+		if (markerJob.compareAndSet(null, job)) {
+			job.schedule();
+		}
 	}
 
 	private synchronized void adjustMarkers(IProgressMonitor monitor) throws CoreException {
@@ -513,7 +532,8 @@
 
 				}
 			})
-			.customizeTree(createTreeViewerBuilder());
+			.customizeTree(createTreeViewerBuilder())
+			.customizeReadOnly(!isEditable(getEditorInput()));
 
 		if (enableValidation()) {
 			builder.customizeLabelDecorator(
@@ -571,9 +591,9 @@
 	 * @throws PartInitException if the resource could not be loaded
 	 */
 	protected ResourceSet loadResource(IEditorInput editorInput) throws PartInitException {
-		final URI resourceURI = EditUIUtil.getURI(editorInput, null);
-
 		ResourceSet resourceSet = ResourceSetHelpers.createResourceSet(getCommandStack());
+		final URI resourceURI = EditUIUtil.getURI(editorInput, resourceSet.getURIConverter());
+
 		try {
 			resourceSet = ResourceSetHelpers.loadResourceWithProxies(resourceURI, resourceSet,
 				getResourceLoadOptions());
@@ -587,6 +607,18 @@
 	}
 
 	/**
+	 * Returns whether the editor input allows editing of its contents.
+	 *
+	 * @param editorInput the editor's {@link IEditorInput}
+	 * @return <code>true</code> if the input source allows editing, <code>false</code> otherwise
+	 * @since 1.22
+	 */
+	protected boolean isEditable(IEditorInput editorInput) {
+		// Only allow editing data if it can be persisted
+		return editorInput.getPersistable() != null;
+	}
+
+	/**
 	 * Check that the resource was loaded correctly and show any warnings to the user.
 	 *
 	 * @param resourceSet the resource set
@@ -685,6 +717,10 @@
 	 */
 	protected List<Action> getToolbarActions() {
 		final List<Action> result = new LinkedList<Action>();
+		if (!isEditable(getEditorInput())) {
+			// If the input isn't editable, toolbar actions are disabled
+			return result;
+		}
 
 		result.add(new LoadEcoreAction(resourceSet));
 
@@ -748,7 +784,7 @@
 
 	private Optional<IFile> getFile() {
 		final IEditorInput input = GenericEditor.this.getEditorInput();
-		if (IFileEditorInput.class.isInstance(input)) {
+		if (isEditable(getEditorInput()) && IFileEditorInput.class.isInstance(input)) {
 			return Optional.of(IFileEditorInput.class.cast(input).getFile());
 		}
 		return Optional.empty();
@@ -764,17 +800,51 @@
 	@Override
 	public void gotoMarker(IMarker marker) {
 		try {
+			EObject eObject = null;
+			EStructuralFeature feature = null;
+
 			final String resourceURI = (String) marker.getAttribute(RESOURCE_URI);
 			final String fragmentURI = (String) marker.getAttribute(FRAGMENT_URI);
-			if (resourceURI == null || fragmentURI == null) {
-				return;
+			if (resourceURI != null && fragmentURI != null) {
+				final Resource resource = getEditingDomain().getResourceSet().getResource(URI.createURI(resourceURI),
+					true);
+				eObject = resource.getEObject(fragmentURI);
+
+				final String featureURI = marker.getAttribute(FEATURE_URI, null);
+				if (featureURI != null) {
+					// Don't load on demand because this should be a delegated look-up in the package registry
+					// or else find the Ecore resource already loaded to resolve our model's schema
+					final EObject featureObject = getEditingDomain().getResourceSet().getEObject(
+						URI.createURI(featureURI),
+						false);
+					if (featureObject instanceof EStructuralFeature) {
+						feature = (EStructuralFeature) featureObject;
+					}
+				}
+			} else {
+				// Maybe it's an EMF-standard marker?
+				final List<?> targets = markerHelper.getTargetObjects(getEditingDomain(), marker, false);
+				for (final Object next : targets) {
+					if (next instanceof EObject) {
+						if (eObject == null) {
+							eObject = (EObject) next;
+						} else if (feature == null && next instanceof EStructuralFeature) {
+							feature = (EStructuralFeature) next;
+						}
+					}
+				}
 			}
-			final Resource resource = getEditingDomain().getResourceSet().getResource(URI.createURI(resourceURI), true);
-			final EObject eObject = resource.getEObject(fragmentURI);
+
 			if (eObject == null) {
+				// Nothing to navigate to
 				return;
 			}
-			reveal(eObject);
+
+			if (feature == null) {
+				reveal(eObject);
+			} else {
+				reveal(UniqueSetting.createSetting(eObject, feature));
+			}
 		} catch (final CoreException ex) {
 			// silent
 		}
@@ -787,25 +857,24 @@
 	 * @since 1.10
 	 */
 	public void reveal(EObject objectToReveal) {
-		rootView.getSelectionProvider().refresh();
+		rootView.refresh();
+		rootView.selectAndReveal(objectToReveal);
+	}
 
-		while (objectToReveal != null) {
-			rootView.getSelectionProvider().reveal(objectToReveal);
-			if (rootView.getSelectionProvider().testFindItem(objectToReveal) != null) {
-				break;
-			}
-			objectToReveal = objectToReveal.eContainer();
-		}
-		if (objectToReveal == null) {
-			return;
-		}
-
-		rootView.setSelection(new StructuredSelection(objectToReveal));
+	/**
+	 * Reveal the control that edits a {@code setting} of some object.
+	 *
+	 * @param setting the feature setting to reveal of object
+	 * @since 1.22
+	 */
+	public void reveal(UniqueSetting setting) {
+		rootView.refresh();
+		rootView.selectAndReveal(setting);
 	}
 
 	/**
 	 * @return the commandStack the {@link
-	 * 		import org.eclipse.emf.common.command.CommandStack;}
+	 *         import org.eclipse.emf.common.command.CommandStack;}
 	 * @since 1.10
 	 */
 	protected BasicCommandStack getCommandStack() {
@@ -834,10 +903,16 @@
 			/* possible when job still running but getting closed */
 			return false;
 		}
+		final EStructuralFeature feature = data.subList(1, data.size()).stream()
+			.filter(EStructuralFeature.class::isInstance).map(EStructuralFeature.class::cast)
+			.findFirst().orElse(null);
 		final String uri = eObject.eResource().getURI().toString();
 		final String uriFragment = eObject.eResource().getURIFragment(eObject);
 		marker.setAttribute(RESOURCE_URI, uri);
 		marker.setAttribute(FRAGMENT_URI, uriFragment);
+		if (feature != null) {
+			marker.setAttribute(FEATURE_URI, String.valueOf(EcoreUtil.getURI(feature)));
+		}
 		return true;
 	}
 
@@ -904,14 +979,7 @@
 			if (!isClosing() && part == GenericEditor.this && isDirty() && filesChangedWithConflict
 				&& discardChanges()) {
 				reloading = true;
-				for (final Resource r : resourceSet.getResources()) {
-					r.unload();
-					try {
-						r.load(null);
-					} catch (final IOException e) {
-					}
-				}
-				rootView.getSelectionProvider().refresh();
+				reloadResources(resourceSet.getResources());
 				reloading = false;
 				getCommandStack().flush();
 				initMarkers();
@@ -1044,7 +1112,7 @@
 			if (rootView == null) {
 				return;
 			}
-			rootView.getSelectionProvider().setSelection(selection);
+			rootView.getMasterDetailSelectionProvider().setSelection(selection);
 		}
 
 		@Override
@@ -1052,7 +1120,7 @@
 			if (rootView == null) {
 				return;
 			}
-			rootView.getSelectionProvider().removeSelectionChangedListener(listener);
+			rootView.getMasterDetailSelectionProvider().removeSelectionChangedListener(listener);
 		}
 
 		@Override
@@ -1060,7 +1128,7 @@
 			if (rootView == null) {
 				return StructuredSelection.EMPTY;
 			}
-			return rootView.getSelectionProvider().getSelection();
+			return rootView.getMasterDetailSelectionProvider().getSelection();
 		}
 
 		@Override
@@ -1068,7 +1136,7 @@
 			if (rootView == null) {
 				return;
 			}
-			rootView.getSelectionProvider().addSelectionChangedListener(listener);
+			rootView.getMasterDetailSelectionProvider().addSelectionChangedListener(listener);
 		}
 	}
 }
diff --git a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GotoMarkerAdapter.java b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GotoMarkerAdapter.java
new file mode 100644
index 0000000..0d3bbba
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GotoMarkerAdapter.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.editor;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
+import org.eclipse.ui.ide.IGotoMarker;
+
+/**
+ * Adapter for the {@link IGotoMarker} protocol that delegates to the
+ * {@link EMFFormsRevealService}.
+ *
+ * @since 1.22
+ */
+public class GotoMarkerAdapter implements IGotoMarker {
+
+	private final MarkerHelper helper = new EditUIMarkerHelper();
+
+	private final ViewModelContext context;
+	private final EditingDomain editingDomain;
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param context the editor's view model context
+	 * @param editingDomain the eeditor's editing domain
+	 */
+	public GotoMarkerAdapter(ViewModelContext context, EditingDomain editingDomain) {
+		super();
+
+		this.context = context;
+		this.editingDomain = editingDomain;
+	}
+
+	@Override
+	public void gotoMarker(IMarker marker) {
+		final List<?> targets = helper.getTargetObjects(editingDomain, marker);
+		final EObject object = getEObject(targets);
+
+		if (object != null) {
+			final EMFFormsRevealService reveal = context.getService(EMFFormsRevealService.class);
+			if (reveal != null) {
+				final EStructuralFeature feature = getEStructuralFeature(targets);
+				if (feature != null) {
+					reveal.reveal(object, feature);
+				} else {
+					reveal.reveal(object);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Extract a domain model element in our editor from a marker's {@code targets}.
+	 *
+	 * @param targets the target objects resolved from a marker to navigate
+	 * @return the domain model object to reveal
+	 */
+	protected EObject getEObject(List<?> targets) {
+		if (!targets.isEmpty()) {
+			final Object first = targets.get(0);
+			if (first instanceof EObject) {
+				return (EObject) first;
+			}
+			final Object unwrapped = AdapterFactoryEditingDomain.unwrap(first);
+			if (unwrapped instanceof EObject) {
+				return (EObject) unwrapped;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Extract a domain model feature in our editor from a marker's {@code targets}.
+	 *
+	 * @param targets the target objects resolved from a marker to navigate
+	 * @return the feature of the domain model object to reveal, or {@code null} if none
+	 */
+	protected EStructuralFeature getEStructuralFeature(List<?> targets) {
+		if (targets.size() > 1) {
+			for (final Iterator<?> iter = targets.listIterator(1); iter.hasNext();) {
+				final Object next = iter.next();
+				if (next instanceof EStructuralFeature) {
+					return (EStructuralFeature) next;
+				}
+			}
+		}
+
+		return null;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/helpers/ResourceSetHelpers.java b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/helpers/ResourceSetHelpers.java
index 03a3a0e..154555a 100644
--- a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/helpers/ResourceSetHelpers.java
+++ b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/helpers/ResourceSetHelpers.java
@@ -237,6 +237,18 @@
 		resourceSet.createResource(resourceURI).load(loadOptions);
 
 		// resolve all proxies
+		resolveAllProxies(resourceSet);
+		return true;
+	}
+
+	/**
+	 * Visits all proxies in the resource set and tries to resolve them. Recursively also resolves all resources added
+	 * during the resolvement of the initial resources.
+	 *
+	 * @param resourceSet The {@link ResourceSet} containing the {@link Resource Resources} to resolve
+	 * @since 1.22
+	 */
+	public static void resolveAllProxies(ResourceSet resourceSet) {
 		int rsSize = resourceSet.getResources().size();
 
 		EcoreUtil.resolveAll(resourceSet);
@@ -244,7 +256,6 @@
 			EcoreUtil.resolveAll(resourceSet);
 			rsSize = resourceSet.getResources().size();
 		}
-		return true;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.classpath b/bundles/org.eclipse.emfforms.ide.builder/.classpath
index 4c62a80..eca7bdb 100644
--- a/bundles/org.eclipse.emfforms.ide.builder/.classpath
+++ b/bundles/org.eclipse.emfforms.ide.builder/.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/JavaSE-1.8"/>
 	<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/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.core.prefs
index 654749b..cd73c74 100644
--- 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
@@ -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.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+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,11 +132,12 @@
 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.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_additive_operator=16
 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
@@ -144,17 +145,20 @@
 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_bitwise_operator=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_logical_operator=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_multiplicative_operator=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_string_concatenation=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
@@ -238,11 +242,12 @@
 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_additive_operator=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_bitwise_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
@@ -272,6 +277,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=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
@@ -296,13 +303,17 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=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_bitwise_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
@@ -349,6 +360,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=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
@@ -385,9 +398,12 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=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
@@ -413,8 +429,12 @@
 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_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
 org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=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.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- 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
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF
index bca0a59..c771150 100644
--- a/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emfforms.ide.builder;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Activator: org.eclipse.emfforms.ide.internal.builder.Activator
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emfforms.ide.builder;version="1.21.0",
- org.eclipse.emfforms.ide.internal.builder;version="1.21.0";x-friends:="org.eclipse.emfforms.ide.builder.test",
- org.eclipse.emfforms.ide.internal.builder.messages;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.ide.builder;version="1.22.0",
+ org.eclipse.emfforms.ide.internal.builder;version="1.22.0";x-friends:="org.eclipse.emfforms.ide.builder.test",
+ org.eclipse.emfforms.ide.internal.builder.messages;version="1.22.0";x-internal:=true
 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)",
@@ -15,14 +15,14 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.bazaar;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)"
 Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.ide.builder
 Service-Component: OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider.xml,OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider.xml
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.ide.builder/build.properties b/bundles/org.eclipse.emfforms.ide.builder/build.properties
index 05da415..500b87f 100644
--- a/bundles/org.eclipse.emfforms.ide.builder/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.builder/build.properties
@@ -5,5 +5,4 @@
                .,\
                about.html,\
                OSGI-INF/
-jre.compilation.profile = JavaSE-1.6
 src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.builder/pom.xml b/bundles/org.eclipse.emfforms.ide.builder/pom.xml
index 9b5294e..e691cbc 100644
--- a/bundles/org.eclipse.emfforms.ide.builder/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.builder/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
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
index e337c18..cf6e3f1 100644
--- 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
@@ -14,11 +14,14 @@
 package org.eclipse.emfforms.ide.builder;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
 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.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
 import org.eclipse.emfforms.ide.internal.builder.ValidationBuilder;
@@ -63,4 +66,44 @@
 			}
 		}
 	}
+
+	/**
+	 * Add attributes to store the URIs of the problematic object and the feature (if any).
+	 * Match exactly the specification or main and related URIs attributes expected by EMF's
+	 * marker utility.
+	 */
+	@Override
+	protected void adjustMarker(IMarker marker, Diagnostic diagnostic, Diagnostic parentDiagnostic)
+		throws CoreException {
+
+		// The first URI is not encoded because there is only one, so spaces in the string don't
+		// matter. But the related URIs are a list separated by spaces, so they are encoded and
+		// will be decoded by the MarkerUtil as needed
+		String uri = null;
+		final StringBuilder relatedURIs = new StringBuilder();
+
+		for (final Object next : diagnostic.getData()) {
+			if (next instanceof EObject) {
+				final EObject eObject = (EObject) next;
+				if (uri == null) {
+					uri = EcoreUtil.getURI(eObject).toString();
+				} else {
+					if (relatedURIs.length() > 0) {
+						relatedURIs.append(' '); // Space to separate encoded URIs
+					}
+					relatedURIs.append(URI.encodeFragment(EcoreUtil.getURI(eObject).toString(), false));
+				}
+			}
+		}
+
+		if (uri != null) {
+			marker.setAttribute(EValidator.URI_ATTRIBUTE, uri);
+		}
+		if (relatedURIs.length() > 0) {
+			marker.setAttribute(EValidator.RELATED_URIS_ATTRIBUTE, relatedURIs.toString());
+		}
+
+		super.adjustMarker(marker, diagnostic, parentDiagnostic);
+	}
+
 }
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
index df7fde9..8da1624 100644
--- 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
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * EclipseSource - initial API and implementation
- * Christian W. Damus - bug 544499
+ * Christian W. Damus - bugs 544499, 548592
  ******************************************************************************/
 package org.eclipse.emfforms.ide.internal.builder;
 
@@ -24,13 +24,14 @@
 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.DefaultMarkerHelper;
 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 {
+public class ViewModelMarkerHelper extends DefaultMarkerHelper {
 	private final IFile file;
 
 	/** identifier of the marker, similar to plugin.xml value. */
@@ -137,7 +138,7 @@
 
 		/**
 		 * Create the view model marker helper.
-		 * 
+		 *
 		 * @param file a view model file
 		 * @return its marker helper
 		 */
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
index f4d0dfe..6172c51 100644
--- 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
@@ -21,7 +21,9 @@
 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.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.ide.spi.util.EcoreHelper;
@@ -61,6 +63,7 @@
 
 		// 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) {
@@ -68,7 +71,12 @@
 		} else {
 			view.eAdapters().add(adapter);
 
-			result = view.eResource().getResourceSet();
+			// the ViewModelHelper forces file: scheme URI, which is bad
+			// for marker navigation
+			final Resource resource = view.eResource();
+			resource.setURI(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+
+			result = resource.getResourceSet();
 			result.eAdapters().add(adapter);
 		}
 
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.classpath b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.classpath
index 4c62a80..eca7bdb 100644
--- a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.classpath
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.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/JavaSE-1.8"/>
 	<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/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.core.prefs
index 654749b..cd73c74 100644
--- 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
@@ -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.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+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,11 +132,12 @@
 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.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_additive_operator=16
 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
@@ -144,17 +145,20 @@
 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_bitwise_operator=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_logical_operator=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_multiplicative_operator=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_string_concatenation=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
@@ -238,11 +242,12 @@
 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_additive_operator=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_bitwise_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
@@ -272,6 +277,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=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
@@ -296,13 +303,17 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=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_bitwise_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
@@ -349,6 +360,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=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
@@ -385,9 +398,12 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=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
@@ -413,8 +429,12 @@
 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_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
 org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=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.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- 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
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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
index 9e6475a..c948430 100644
--- a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emfforms.ide.datatemplate.builder;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emfforms.ide.datatemplate.internal.builder;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.ide.datatemplate.internal.builder;version="1.22.0";x-internal:=true
 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.21.0,1.22.0)",
- org.eclipse.emfforms.ide.builder;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.datatemplate.model;bundle-version="[1.21.0,1.22.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.22.0,1.23.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties
index d116963..d1e5fec 100644
--- a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties
@@ -4,4 +4,3 @@
                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
index be0307e..54702a5 100644
--- a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.classpath b/bundles/org.eclipse.emfforms.ide.ecore.builder/.classpath
index 4c62a80..eca7bdb 100644
--- a/bundles/org.eclipse.emfforms.ide.ecore.builder/.classpath
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.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/JavaSE-1.8"/>
 	<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/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.core.prefs
index 654749b..cd73c74 100644
--- 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
@@ -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.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+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,11 +132,12 @@
 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.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_additive_operator=16
 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
@@ -144,17 +145,20 @@
 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_bitwise_operator=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_logical_operator=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_multiplicative_operator=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_string_concatenation=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
@@ -238,11 +242,12 @@
 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_additive_operator=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_bitwise_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
@@ -272,6 +277,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=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
@@ -296,13 +303,17 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=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_bitwise_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
@@ -349,6 +360,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=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
@@ -385,9 +398,12 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=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
@@ -413,8 +429,12 @@
 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_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
 org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=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.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- 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
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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
index 763cf0f..526f1a5 100644
--- a/bundles/org.eclipse.emfforms.ide.ecore.builder/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emfforms.ide.ecore.builder;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emfforms.ide.ecore.internal.builder;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.ide.ecore.internal.builder;version="1.22.0";x-internal:=true
 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.21.0,1.22.0)",
- org.eclipse.emfforms.ide.builder;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties b/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties
index d116963..d1e5fec 100644
--- a/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties
@@ -4,4 +4,3 @@
                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
index b98acdf..2f6ee6e 100644
--- a/bundles/org.eclipse.emfforms.ide.ecore.builder/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/.checkstyle b/bundles/org.eclipse.emfforms.ide.preferences/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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.preferences/.classpath b/bundles/org.eclipse.emfforms.ide.preferences/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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/bundles/org.eclipse.emfforms.ide.preferences/.project b/bundles/org.eclipse.emfforms.ide.preferences/.project
new file mode 100644
index 0000000..fe44778
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.preferences</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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.preferences/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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.preferences/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..cd73c74
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,440 @@
+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_additive_operator=16
+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_bitwise_operator=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_logical_operator=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_multiplicative_operator=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_string_concatenation=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_additive_operator=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_bitwise_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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=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_bitwise_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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=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_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=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.preferences/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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.preferences/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..6ed4937
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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">/**\n * @return the ${bare_field_name}\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">/**\n * @param ${param} the ${bare_field_name} to set\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">/**\n * ${tags}\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">/*******************************************************************************\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n * \n * Contributors\:\n * ${user} - initial API and implementation\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">/**\n * @author ${user}\n *\n * ${tags}\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">/**\n * ${tags}\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">/**\n * {@inheritDoc}\n * ${see_to_overridden}\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">/**\n * ${tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\n\t\t\t// Log AND handle Exceptions if possible \n            //\n            // You can just uncomment one of the lines below to log an exception\:\n\t\t\t// logException will show the logged excpetion to the user\n\t\t\t// ModelUtil.logException(${exception_var});\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// logWarning will only add the message to the error log\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\n\t\t\t//\t\t\t\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\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}\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.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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.preferences/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..cfb400b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+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_FIELD=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_DEFAULT_METHOD=Ignore
+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_ANNOTATION=Warning
+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
+changed_execution_env=Error
+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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
+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.preferences/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.ide.preferences/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/.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.preferences/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.preferences/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..da85976
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Forms Preferences
+Bundle-SymbolicName: org.eclipse.emfforms.ide.preferences;singleton:=true
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Automatic-Module-Name: org.eclipse.emfforms.ide.preferences
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.equinox.preferences;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.ide.preferences;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.ide.preferences;version="1.22.0"
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/about.html b/bundles/org.eclipse.emfforms.ide.preferences/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/about.html
@@ -0,0 +1,36 @@
+<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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.preferences/build.properties b/bundles/org.eclipse.emfforms.ide.preferences/build.properties
new file mode 100644
index 0000000..e5a949c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/plugin.xml b/bundles/org.eclipse.emfforms.ide.preferences/plugin.xml
new file mode 100644
index 0000000..7cf1855
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            class="org.eclipse.emfforms.internal.ide.preferences.EmfFormsMainPreferencePage"
+            id="org.eclipse.emfforms.ide.preferences.page.main"
+            name="EMF Forms">
+      </page>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/pom.xml b/bundles/org.eclipse.emfforms.ide.preferences/pom.xml
new file mode 100644
index 0000000..d724320
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/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.22.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emfforms.ide.preferences</artifactId>
+  <version>1.22.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/Activator.java b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/Activator.java
new file mode 100644
index 0000000..beda1b2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/Activator.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.ide.preferences;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Plugin activator for Bundle org.eclipse.emfforms.ide.preferences.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+
+	/**
+	 * The constant holding the id of this plugin.
+	 */
+	public static final String PLUGIN_ID = "org.eclipse.emfforms.ide.preferences"; //$NON-NLS-1$
+
+	private static Activator plugin;
+	private ServiceReference<ReportService> reportServiceReference;
+
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Override
+	public void start(BundleContext bundleContext) throws Exception {
+		plugin = this;
+		super.start(bundleContext);
+	}
+
+	@Override
+	public void stop(BundleContext bundleContext) throws Exception {
+		if (reportServiceReference != null) {
+			bundleContext.ungetService(reportServiceReference);
+		}
+		plugin = null;
+		super.stop(bundleContext);
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = getBundle().getBundleContext().getServiceReference(ReportService.class);
+		}
+		return getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/EmfFormsMainPreferencePage.java b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/EmfFormsMainPreferencePage.java
new file mode 100644
index 0000000..11225df
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/EmfFormsMainPreferencePage.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.ide.preferences;
+
+import org.eclipse.emfforms.spi.ide.preferences.EmfFormsPreferences;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * Main preference page for EMF Forms.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EmfFormsMainPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+
+	private Button legacyButton;
+	private Button segmentsButton;
+
+	/**
+	 * Create me with an empty title and no image.
+	 */
+	public EmfFormsMainPreferencePage() {
+		// Nothing to do here
+	}
+
+	/**
+	 * Creates me with a title.
+	 *
+	 * @param title Title of this preference page
+	 */
+	public EmfFormsMainPreferencePage(String title) {
+		super(title);
+	}
+
+	/**
+	 * Creates me with a title and an image.
+	 *
+	 * @param title Title of this preference page
+	 * @param image Image of this preference page
+	 */
+	public EmfFormsMainPreferencePage(String title, ImageDescriptor image) {
+		super(title, image);
+	}
+
+	@Override
+	public void init(IWorkbench workbench) {
+		// Nothing to do here
+	}
+
+	@Override
+	protected Control createContents(Composite parent) {
+		final Composite composite = new Composite(parent, SWT.NONE);
+
+		final Group modeGroup = new Group(composite, SWT.TITLE);
+		modeGroup.setText(Messages.EmfFormsMainPreferencePage_toolingModeTitle);
+		final Composite padding = new Composite(modeGroup, SWT.NONE);
+		final Label modeDescription = new Label(padding, SWT.WRAP);
+		modeDescription.setText(
+			Messages.EmfFormsMainPreferencePage_toolingModeDescription);
+		final Composite modeSelection = new Composite(padding, SWT.NONE);
+		modeSelection.setLayout(new RowLayout(SWT.VERTICAL));
+		legacyButton = new Button(modeSelection, SWT.RADIO);
+		legacyButton.setText(Messages.EmfFormsMainPreferencePage_legacyMode);
+		segmentsButton = new Button(modeSelection, SWT.RADIO);
+		segmentsButton.setText(Messages.EmfFormsMainPreferencePage_segmentMode);
+
+		GridLayoutFactory.fillDefaults().generateLayout(modeSelection);
+		GridLayoutFactory.fillDefaults().generateLayout(padding);
+		GridLayoutFactory.fillDefaults().margins(5, 5).generateLayout(modeGroup);
+		GridLayoutFactory.fillDefaults().generateLayout(composite);
+
+		updateToolingModeButtons(EmfFormsPreferences.isSegmentTooling());
+		return composite;
+	}
+
+	@Override
+	protected void performDefaults() {
+		updateToolingModeButtons(EmfFormsPreferences.SEGMENT_TOOLING_DEFAULT);
+		super.performDefaults();
+	}
+
+	private void updateToolingModeButtons(boolean segmentTooling) {
+		legacyButton.setSelection(!segmentTooling);
+		segmentsButton.setSelection(segmentTooling);
+	}
+
+	@Override
+	public boolean performOk() {
+		EmfFormsPreferences.setSegmentTooling(segmentsButton.getSelection());
+		return super.performOk();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/Messages.java b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/Messages.java
new file mode 100644
index 0000000..c67895e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/Messages.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.ide.preferences;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author Lucas Koehler
+ *
+ */
+// BEGIN COMPLEX CODE
+public final class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.emfforms.internal.ide.preferences.messages"; //$NON-NLS-1$
+	public static String EmfFormsMainPreferencePage_legacyMode;
+	public static String EmfFormsMainPreferencePage_segmentMode;
+	public static String EmfFormsMainPreferencePage_toolingModeDescription;
+	public static String EmfFormsMainPreferencePage_toolingModeTitle;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
+// END COMPLEX CODE
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/messages.properties b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/messages.properties
new file mode 100644
index 0000000..3e89f77
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/internal/ide/preferences/messages.properties
@@ -0,0 +1,4 @@
+EmfFormsMainPreferencePage_legacyMode=Legacy Domain Model References
+EmfFormsMainPreferencePage_segmentMode=Segment-based Domain Model References
+EmfFormsMainPreferencePage_toolingModeDescription=The tooling mode determines how domain model references are created.\nNote: The view model editor might not work properly if the tooling mode is different from the DMRs the view model uses.
+EmfFormsMainPreferencePage_toolingModeTitle=IDE Tooling Mode
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/spi/ide/preferences/EmfFormsPreferences.java b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/spi/ide/preferences/EmfFormsPreferences.java
new file mode 100644
index 0000000..8149670
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/src/org/eclipse/emfforms/spi/ide/preferences/EmfFormsPreferences.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.ide.preferences;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.emfforms.internal.ide.preferences.Activator;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.osgi.service.prefs.BackingStoreException;
+
+/**
+ * Utility class providing access to EMF Forms's eclipse preferences.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public final class EmfFormsPreferences {
+
+	/** Default value of the segment tooling preference. */
+	public static final boolean SEGMENT_TOOLING_DEFAULT = false;
+
+	private static final String SEGMENT_TOOLING = "segmentTooling";
+
+	private EmfFormsPreferences() {
+		// hide constructor
+	}
+
+	/**
+	 * Returns whether segment IDE tooling is enabled.
+	 *
+	 * @return <code>true</code> if segment tooling is enabled
+	 */
+	public static boolean isSegmentTooling() {
+		return getNode().getBoolean(SEGMENT_TOOLING, SEGMENT_TOOLING_DEFAULT);
+	}
+
+	/**
+	 * Set whether segment IDE tooling is enabled.
+	 *
+	 * @param segmentTooling <code>true</code> if segment tooling is enabled
+	 */
+	public static void setSegmentTooling(boolean segmentTooling) {
+		final IEclipsePreferences node = getNode();
+		node.putBoolean(SEGMENT_TOOLING, segmentTooling);
+		try {
+			node.flush();
+			node.sync();
+		} catch (final BackingStoreException ex) {
+			Activator.getDefault().getReportService()
+				.report(new AbstractReport(ex, "Could not sync EMFForms Preferences."));
+		}
+	}
+
+	private static IEclipsePreferences getNode() {
+		return InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.view.indexsegment/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.view.indexsegment/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.ide.view.indexsegment/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.ide.view.indexsegment/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.view.indexsegment/META-INF/MANIFEST.MF
index cba0986..e7cdf53 100644
--- a/bundles/org.eclipse.emfforms.ide.view.indexsegment/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/META-INF/MANIFEST.MF
@@ -2,13 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Index Segment IDE Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.ide.view.indexsegment;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.ide.view.indexsegment;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.ide.view.indexsegment;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/IndexSegmentIdeDescriptor.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
+Import-Package: org.osgi.framework;version="1.3.0",
+ org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.ide.view.indexsegment
diff --git a/bundles/org.eclipse.emfforms.ide.view.indexsegment/about.html b/bundles/org.eclipse.emfforms.ide.view.indexsegment/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/about.html
@@ -0,0 +1,36 @@
+<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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.view.indexsegment/build.properties b/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties
index c58ea21..30c35d7 100644
--- a/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties
@@ -2,4 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
+               OSGI-INF/,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.indexsegment/pom.xml b/bundles/org.eclipse.emfforms.ide.view.indexsegment/pom.xml
index d1d041f..c98a85d 100644
--- a/bundles/org.eclipse.emfforms.ide.view.indexsegment/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.ide.view.indexsegment</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/META-INF/MANIFEST.MF
index 2d51e42..6657c2d 100644
--- a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/META-INF/MANIFEST.MF
@@ -2,29 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Mapping Segment IDE Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.ide.view.mappingsegment;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Automatic-Module-Name: org.eclipse.emfforms.ide.view.mappingsegment
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.ide.view.mappingsegment;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.15.100,4.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.databinding;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emfforms.internal.ide.view.mappingsegment;version="1.21.0";x-internal:=true
-Service-Component: OSGI-INF/MappingSegmentIdeDescriptor.xml,
- OSGI-INF/MappedEClassControlSWTRendererTester.xml
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/MappingSegmentIdeDescriptor.xml,OSGI-INF/MappedEClassControlSWTRendererTester.xml
+Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
@@ -32,3 +30,4 @@
  org.eclipse.swt.widgets;version="0.0.0",
  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
  org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
+Automatic-Module-Name: org.eclipse.emfforms.ide.view.mappingsegment
diff --git a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/about.html b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/about.html
@@ -0,0 +1,36 @@
+<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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.view.mappingsegment/build.properties b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties
index c58ea21..30c35d7 100644
--- a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties
@@ -2,4 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
+               OSGI-INF/,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/pom.xml b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/pom.xml
index d852589..f0029c5 100644
--- a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/pom.xml
@@ -7,7 +7,7 @@
   <parent>

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

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

-    <version>1.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.view.multisegment/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.view.multisegment/META-INF/MANIFEST.MF
index 213f1b3..2f8c88f 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/META-INF/MANIFEST.MF
@@ -2,35 +2,41 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Multi Segment IDE Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.ide.view.multisegment;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.view.multisegment.tooling;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.view.multisegment.tooling;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.bazaar;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.view.segments;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/MultiSegmentChildDmrOpenInNewContextStrategyProvider.xml,OSGI-INF/MultiDmrNewReferenceElementStrategyProvider.xml,OSGI-INF/MultiSegmentIdeDescriptor.xml,OSGI-INF/MultiSegmentChildDmrNewModelElementStrategyProvider.xml,OSGI-INF/MultiDmrOpenInNewContextStrategyProvider.xml,OSGI-INF/MultiSegmentChildDmrsSWTRendererService.xml
+Service-Component: OSGI-INF/MultiSegmentChildDmrOpenInNewContextStrategyProvider.xml,
+ OSGI-INF/MultiDmrNewReferenceElementStrategyProvider.xml,
+ OSGI-INF/MultiSegmentIdeDescriptor.xml,
+ OSGI-INF/MultiSegmentChildDmrNewModelElementStrategyProvider.xml,
+ OSGI-INF/MultiDmrOpenInNewContextStrategyProvider.xml,
+ OSGI-INF/MultiSegmentChildDmrsSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="0.0.0",
  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
@@ -46,5 +52,6 @@
  org.eclipse.swt.events;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.emfforms.ide.view.multisegment
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/about.html b/bundles/org.eclipse.emfforms.ide.view.multisegment/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/about.html
@@ -0,0 +1,36 @@
+<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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.view.multisegment/build.properties b/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties
index b26f6d3..9cb187b 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties
@@ -2,4 +2,7 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
\ No newline at end of file
+               OSGI-INF/,\
+               about.html
+
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/pom.xml b/bundles/org.eclipse.emfforms.ide.view.multisegment/pom.xml
index c2f9683..bf7f7d0 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.ide.view.multisegment</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrNewReferenceElementStrategyProvider.java b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrNewReferenceElementStrategyProvider.java
index 0fea976..2fd9676 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrNewReferenceElementStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrNewReferenceElementStrategyProvider.java
@@ -21,12 +21,12 @@
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceServiceCustomizationVendor;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateSegmentDmrWizard;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
 import org.eclipse.emfforms.bazaar.Create;
 import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentPackage;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Display;
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrOpenInNewContextStrategyProvider.java b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrOpenInNewContextStrategyProvider.java
index 0ebc659..c7ade77 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrOpenInNewContextStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiDmrOpenInNewContextStrategyProvider.java
@@ -25,7 +25,6 @@
 import org.eclipse.emf.ecp.ui.view.swt.reference.ReferenceServiceCustomizationVendor;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateSegmentDmrWizard;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
@@ -33,6 +32,7 @@
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentPackage;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Display;
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrNewModelElementStrategyProvider.java b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrNewModelElementStrategyProvider.java
index 7b18800..e7bc460 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrNewModelElementStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrNewModelElementStrategyProvider.java
@@ -23,7 +23,6 @@
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateSegmentDmrWizard;
 import org.eclipse.emf.ecp.view.internal.editor.handler.FeatureSegmentGenerator;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emfforms.bazaar.Create;
 import org.eclipse.emfforms.common.Optional;
@@ -31,6 +30,7 @@
 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.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentPackage;
 import org.eclipse.jface.wizard.WizardDialog;
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrOpenInNewContextStrategyProvider.java b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrOpenInNewContextStrategyProvider.java
index 603bcf2..c47ffd6 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrOpenInNewContextStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrOpenInNewContextStrategyProvider.java
@@ -27,7 +27,6 @@
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateSegmentDmrWizard;
 import org.eclipse.emf.ecp.view.internal.editor.handler.FeatureSegmentGenerator;
 import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
-import org.eclipse.emf.ecp.view.spi.editor.controls.ToolingModeUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.edit.command.ReplaceCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
@@ -37,6 +36,7 @@
 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.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.ide.view.segments.ToolingModeUtil;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
 import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentPackage;
 import org.eclipse.jface.wizard.WizardDialog;
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/.checkstyle b/bundles/org.eclipse.emfforms.ide.view.segments/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/.classpath b/bundles/org.eclipse.emfforms.ide.view.segments/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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/bundles/org.eclipse.emfforms.ide.view.segments/.project b/bundles/org.eclipse.emfforms.ide.view.segments/.project
new file mode 100644
index 0000000..e593abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.view.segments</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.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>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..557976e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,419 @@
+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=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.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/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..6ed4937
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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">/**\n * @return the ${bare_field_name}\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">/**\n * @param ${param} the ${bare_field_name} to set\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">/**\n * ${tags}\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">/*******************************************************************************\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n * \n * Contributors\:\n * ${user} - initial API and implementation\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">/**\n * @author ${user}\n *\n * ${tags}\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">/**\n * ${tags}\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">/**\n * {@inheritDoc}\n * ${see_to_overridden}\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">/**\n * ${tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\n\t\t\t// Log AND handle Exceptions if possible \n            //\n            // You can just uncomment one of the lines below to log an exception\:\n\t\t\t// logException will show the logged excpetion to the user\n\t\t\t// ModelUtil.logException(${exception_var});\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// logWarning will only add the message to the error log\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\n\t\t\t//\t\t\t\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\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}\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.view.segments/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.pde.ds.annotations.prefs
new file mode 100644
index 0000000..960a807
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+enabled=true
+generateBundleActivationPolicyLazy=true
+path=OSGI-INF
+validationErrorLevel=error
+validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.ide.view.segments/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/.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.view.segments/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.view.segments/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..aeb612a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Forms Segments IDE Tooling
+Bundle-SymbolicName: org.eclipse.emfforms.ide.view.segments
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Automatic-Module-Name: org.eclipse.emfforms.ide.view.segments
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.preferences;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.ide.view.segments;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.ide.view.segments;version="1.22.0"
+Import-Package: org.osgi.framework;version="1.2.0",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.ide.view.segments.DmrToSegmentsMigratorImpl.xml
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/OSGI-INF/org.eclipse.emfforms.internal.ide.view.segments.DmrToSegmentsMigratorImpl.xml b/bundles/org.eclipse.emfforms.ide.view.segments/OSGI-INF/org.eclipse.emfforms.internal.ide.view.segments.DmrToSegmentsMigratorImpl.xml
new file mode 100644
index 0000000..91cdf49
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/OSGI-INF/org.eclipse.emfforms.internal.ide.view.segments.DmrToSegmentsMigratorImpl.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.internal.ide.view.segments.DmrToSegmentsMigratorImpl">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator"/>
+   </service>
+   <reference bind="setEMFFormsSegmentGenerator" interface="org.eclipse.emfforms.spi.core.services.segments.EMFFormsSegmentGenerator" name="EMFFormsSegmentGenerator"/>
+   <reference bind="setReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService"/>
+   <implementation class="org.eclipse.emfforms.internal.ide.view.segments.DmrToSegmentsMigratorImpl"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/about.html b/bundles/org.eclipse.emfforms.ide.view.segments/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/about.html
@@ -0,0 +1,36 @@
+<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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.view.segments/build.properties b/bundles/org.eclipse.emfforms.ide.view.segments/build.properties
new file mode 100644
index 0000000..30c35d7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/pom.xml b/bundles/org.eclipse.emfforms.ide.view.segments/pom.xml
new file mode 100644
index 0000000..1ec416a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/pom.xml
@@ -0,0 +1,19 @@
+<?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"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.22.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emfforms.ide.view.segments</artifactId>
+  <version>1.22.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl.java b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl.java
new file mode 100644
index 0000000..95d65ea
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.ide.view.segments;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.model.util.VViewResourceFactoryImpl;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.segments.EMFFormsSegmentGenerator;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrationException;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator;
+import org.eclipse.emfforms.view.spi.multisegment.model.MultiSegmentUtil;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * Implementation of {@link DmrToSegmentsMigrator}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@Component
+public class DmrToSegmentsMigratorImpl implements DmrToSegmentsMigrator {
+
+	private EMFFormsSegmentGenerator segmentGenerator;
+	private ReportService reportService;
+
+	/**
+	 * Sets the {@link EMFFormsSegmentGenerator}.
+	 *
+	 * @param segmentGenerator The {@link EMFFormsSegmentGenerator}
+	 */
+	@Reference(unbind = "-")
+	void setEMFFormsSegmentGenerator(EMFFormsSegmentGenerator segmentGenerator) {
+		this.segmentGenerator = segmentGenerator;
+	}
+
+	/**
+	 * Sets the {@link ReportService}.
+	 *
+	 * @param reportService The {@link ReportService}
+	 */
+	@Reference(unbind = "-")
+	void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+
+	}
+
+	@Override
+	public boolean needsMigration(URI resourceUri) {
+		Resource resource;
+		try {
+			resource = loadResource(resourceUri);
+		} catch (final IOException ex) {
+			reportService.report(
+				new AbstractReport(ex,
+					"Could not check whether resource ''{0}'' still uses legacy DMRs because it could not be loaded.", //$NON-NLS-1$
+					resourceUri));
+			return false;
+		}
+
+		return needsMigration(resource);
+	}
+
+	/**
+	 * Checks whether a view model still contains legacy domain model references that need to be migrated to segments.
+	 * The resource must be {@link Resource#load(java.util.Map) loaded} before handing it into this method.
+	 *
+	 * @param resource The loaded resource
+	 * @return true, if the view model requires a migration, false otherwise.
+	 */
+	protected boolean needsMigration(Resource resource) {
+		final TreeIterator<EObject> allContents = resource.getAllContents();
+		while (allContents.hasNext()) {
+			final EObject next = allContents.next();
+			if (isLegacyDmr(next)) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	@Override
+	public void performMigration(URI resourceUri, PreReplaceProcessor... preReplaceProcessors)
+		throws DmrToSegmentsMigrationException {
+		final Resource resource;
+		try {
+			resource = loadResource(resourceUri);
+		} catch (final IOException ex) {
+			throw new DmrToSegmentsMigrationException(ex, "The resource {0} could not be loaded", resourceUri); //$NON-NLS-1$
+		}
+
+		performMigration(resource, preReplaceProcessors);
+
+		try {
+			resource.save(Collections.singletonMap(XMLResource.OPTION_ENCODING, "UTF-8")); //$NON-NLS-1$
+		} catch (final IOException ex) {
+			throw new DmrToSegmentsMigrationException(ex, "Migrated resource could not be saved to {0}.", resourceUri); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Migrates all legacy domain model references in the given resource. The resource must be
+	 * {@link Resource#load(java.util.Map) loaded} before handing it into this method.
+	 *
+	 * @param resource The loaded resource
+	 * @param preReplaceProcessors The {@link PreReplaceProcessor PreReplaceProcessors}
+	 * @throws DmrToSegmentsMigrationException if the migration fails
+	 */
+	protected void performMigration(final Resource resource, PreReplaceProcessor... preReplaceProcessors)
+		throws DmrToSegmentsMigrationException {
+		// Collect all legacy DMRs
+		final List<VDomainModelReference> legacyDmrs = new LinkedList<>();
+		final TreeIterator<EObject> allContents = resource.getAllContents();
+		allContents.forEachRemaining(eObject -> {
+			if (isLegacyDmr(eObject)) {
+				legacyDmrs.add((VDomainModelReference) eObject);
+				// Skip contents of legacy DMRs because we do not need to explicitly convert DMRs contained in other
+				// DMRs. The contained DMRs will be considered when generating the segments for their parents.
+				allContents.prune();
+			}
+		});
+
+		// Generate new DMRs, replace the legacy ones in place, and adjust cross references
+		for (final VDomainModelReference legacyDmr : legacyDmrs) {
+			final List<VDomainModelReferenceSegment> segments = segmentGenerator.generateSegments(legacyDmr);
+			final VDomainModelReference newDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+			newDmr.getSegments().addAll(segments);
+
+			final Map<VDomainModelReference, VDomainModelReference> crossRefReplacements = new HashMap<>();
+			crossRefReplacements.put(legacyDmr, newDmr);
+
+			// If the legacy dmr is a table dmr, we need to make sure references to columns (e.g. in read only configs)
+			// are migrated. This is not automatically done because we need to skip DMRs contained in other DMRs in the
+			// initial legacy DMR collection.
+			if (legacyDmr instanceof VTableDomainModelReference) {
+				final EList<VDomainModelReference> columnDmrs = VTableDomainModelReference.class.cast(legacyDmr)
+					.getColumnDomainModelReferences();
+				final EList<VDomainModelReference> childDmrs = MultiSegmentUtil.getMultiSegment(newDmr)
+					.map(VMultiDomainModelReferenceSegment::getChildDomainModelReferences)
+					.orElseGet(BasicEList::new);
+				if (columnDmrs.size() != childDmrs.size()) {
+					throw new DmrToSegmentsMigrationException(
+						"There was a different number of legacy column DMRs and generated child DMRs for table DMR {0}.", //$NON-NLS-1$
+						legacyDmr);
+				}
+				for (int i = 0; i < columnDmrs.size(); i++) {
+					crossRefReplacements.put(columnDmrs.get(i), childDmrs.get(i));
+				}
+			}
+
+			for (final PreReplaceProcessor processor : preReplaceProcessors) {
+				processor.process(legacyDmr, newDmr);
+			}
+
+			// Replace legacy dmr with new dmr and then update all cross references to the legacy dmr or its child dmrs
+			// (in case of a table dmr)
+			EcoreUtil.replace(legacyDmr, newDmr);
+			final Map<EObject, Collection<Setting>> usageMap = EcoreUtil.UsageCrossReferencer
+				.findAll(crossRefReplacements.keySet(), resource);
+			usageMap.forEach((old, usages) -> {
+				usages.forEach(setting -> {
+					final VDomainModelReference replacement = crossRefReplacements.get(old);
+					EcoreUtil.replace(setting, old, replacement);
+				});
+			});
+
+		}
+	}
+
+	/**
+	 * Checks whether the given EObject is a legacy domain model reference. Legacy DMRs are all EObjects that are of a
+	 * subtype of DomainModelReference but are not of type DomainModelReference itself
+	 *
+	 * @param eObject The {@link EObject} to check
+	 * @return true if the given EObject is a legacy DMR
+	 */
+	private boolean isLegacyDmr(final EObject eObject) {
+		return VViewPackage.Literals.DOMAIN_MODEL_REFERENCE.isSuperTypeOf(eObject.eClass())
+			&& !(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE == eObject.eClass());
+	}
+
+	private Resource loadResource(URI resourceUri) throws IOException {
+		final ResourceSetImpl resourceSet = new ResourceSetImpl();
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(
+			Resource.Factory.Registry.DEFAULT_EXTENSION, new VViewResourceFactoryImpl());
+		final Resource resource = resourceSet.createResource(resourceUri);
+		resource.load(null);
+		return resource;
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/DmrToSegmentsMigrationException.java b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/DmrToSegmentsMigrationException.java
new file mode 100644
index 0000000..6f52b59
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/DmrToSegmentsMigrationException.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.ide.view.segments;
+
+import java.text.MessageFormat;
+
+/**
+ * Thrown when the migration of a resource from legacy to segment based dmrs fails.
+ *
+ * @author Lucas Koehler
+ * @since 1.22
+ */
+public class DmrToSegmentsMigrationException extends Exception {
+
+	private static final long serialVersionUID = 6563601659356559914L;
+
+	/**
+	 * @param messageFormat describes the exception in {@link MessageFormat}
+	 * @param messageArgs Arguments for the message format.
+	 */
+	public DmrToSegmentsMigrationException(String messageFormat, Object... messageArgs) {
+		super(MessageFormat.format(messageFormat, messageArgs));
+	}
+
+	/**
+	 * @param cause the root cause for this exception
+	 * @param messageFormat describes the exception in {@link MessageFormat}
+	 * @param messageArgs Arguments for the message format.
+	 */
+	public DmrToSegmentsMigrationException(Throwable cause, String messageFormat, Object... messageArgs) {
+		super(MessageFormat.format(messageFormat, messageArgs), cause);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/DmrToSegmentsMigrator.java b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/DmrToSegmentsMigrator.java
new file mode 100644
index 0000000..ba67ee2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/DmrToSegmentsMigrator.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.ide.view.segments;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * Service which replaces all legacy domain model references of a view model with equivalent plain DMRs containing the
+ * corresponding segments.
+ *
+ * @author Lucas Koehler
+ * @since 1.22
+ */
+public interface DmrToSegmentsMigrator {
+
+	/**
+	 * Checks whether a view model still contains legacy domain model references that need to be migrated to segments.
+	 *
+	 * @param resourceUri The URI of the view model that should be checked.
+	 * @return true, if the view model requires a migration, false otherwise.
+	 */
+	boolean needsMigration(URI resourceUri);
+
+	/**
+	 * Migrates a view model to use segment based DMRs. This replaces all legacy DMRs from the view model and replaces
+	 * them with segment based DMRs. This is not undoable!
+	 *
+	 * @param resourceUri The URI of the view model that should be migrated.
+	 * @param preReplaceProcessors {@link PreReplaceProcessor} which are executed just before a legacy dmr is replaced
+	 *            with the corresponding segment dmr. The processors are always executed in the given order
+	 * @throws DmrToSegmentsMigrationException if the migration fails
+	 */
+	void performMigration(URI resourceUri, PreReplaceProcessor... preReplaceProcessors)
+		throws DmrToSegmentsMigrationException;
+
+	/**
+	 * Processor that is executed after segments have been generated for the new segment based dmr but before the legacy
+	 * dmr is replaced in the model. The processor may alter any of the two dmrs or any other part of the containing
+	 * resource.
+	 */
+	@FunctionalInterface
+	public interface PreReplaceProcessor {
+		/**
+		 * <p>
+		 * Processes the legacy dmr, the segment dmr or any related EObject <strong>before</strong> the legacy dmr is
+		 * replaced with the segment dmr in the model.
+		 * </p>
+		 * <p>
+		 * This may also alter the model including the legacy dmr or the segment dmr.
+		 *
+		 * @param legacyDmr The legacy dmr which will be replaced in the model
+		 * @param segmentDmr The segment based dmr which is already filled with segments based on the legacy dmr
+		 */
+		void process(VDomainModelReference legacyDmr, VDomainModelReference segmentDmr);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/ToolingModeUtil.java b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/ToolingModeUtil.java
new file mode 100644
index 0000000..1501ed0
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/src/org/eclipse/emfforms/spi/ide/view/segments/ToolingModeUtil.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.ide.view.segments;
+
+import org.eclipse.emfforms.spi.ide.preferences.EmfFormsPreferences;
+
+/**
+ * Utility class that allows to query whether segment or dmr based tooling is used.
+ *
+ * @author Lucas Koehler
+ * @since 1.22
+ *
+ */
+public final class ToolingModeUtil {
+
+	/**
+	 * This flag enables the automatic generation of segments from existing DMRs.
+	 *
+	 * @deprecated The tooling mode is no longer defined via runtime parameter but by a workspace preference. See
+	 *             {@link EmfFormsPreferences#isSegmentTooling()}
+	 */
+	@Deprecated
+	public static final String ENABLE_SEGMENT_TOOLING = "-enableSegmentTooling"; //$NON-NLS-1$
+
+	// Utility classes should not be instantiated
+	private ToolingModeUtil() {
+	}
+
+	/**
+	 * Returns true if the <strong>-enableSegmentTooling</strong> program argument was set.
+	 *
+	 * @return <code>true</code> if the tooling creates segment based DMRs, or <code>false</code> if legacy DMRs are
+	 *         created
+	 */
+	public static boolean isSegmentToolingEnabled() {
+		return EmfFormsPreferences.isSegmentTooling();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.classpath b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.classpath
index 4c62a80..eca7bdb 100644
--- a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.classpath
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.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/JavaSE-1.8"/>
 	<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/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.core.prefs
index 654749b..cd73c74 100644
--- 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
@@ -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.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+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,11 +132,12 @@
 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.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_additive_operator=16
 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
@@ -144,17 +145,20 @@
 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_bitwise_operator=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_logical_operator=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_multiplicative_operator=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_string_concatenation=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
@@ -238,11 +242,12 @@
 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_additive_operator=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_bitwise_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
@@ -272,6 +277,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=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
@@ -296,13 +303,17 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=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_bitwise_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
@@ -349,6 +360,8 @@
 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_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=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
@@ -385,9 +398,12 @@
 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_relational_operator=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_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=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
@@ -413,8 +429,12 @@
 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_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
 org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=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.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- 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
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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
index 449f04f..6650d22 100644
--- a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emfforms.ide.viewtemplate.builder;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emfforms.ide.viewtemplate.internal.builder;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.ide.viewtemplate.internal.builder;version="1.22.0";x-internal:=true
 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.21.0,1.22.0)",
- org.eclipse.emfforms.ide.builder;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties
index 107e94e..240b4cd 100644
--- a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties
@@ -4,5 +4,4 @@
                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
index 41ba1c0..9cb0712 100644
--- a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/pom.xml
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
index c7e8d86..ae1793b 100644
--- a/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Localization
 Bundle-SymbolicName: org.eclipse.emfforms.localization
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.localization;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.localization;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.localization;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.localization;version="1.22.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.localization
-Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.12.0,1.21.0]",
- org.eclipse.emfforms.spi.common.report;version="[1.12.0,1.21.0]",
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.12.0,1.22.0]",
+ org.eclipse.emfforms.spi.common.report;version="[1.12.0,1.22.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",
diff --git a/bundles/org.eclipse.emfforms.localization/pom.xml b/bundles/org.eclipse.emfforms.localization/pom.xml
index afecff7..f329689 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.rulerepository.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.rulerepository.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.rulerepository.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2e6864b..040b7e9 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.spi.rulerepository.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.rulerepository.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 81a7918..b1219b6 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emfforms.rulerepository.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.rulerepository.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.rulerepository.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 751b922..5066f2b 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.rulerepository.model;version="1.21.0",
- org.eclipse.emfforms.spi.rulerepository.model.impl;version="1.21.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit",
- org.eclipse.emfforms.spi.rulerepository.model.util;version="1.21.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit"
+Export-Package: org.eclipse.emfforms.spi.rulerepository.model;version="1.22.0",
+ org.eclipse.emfforms.spi.rulerepository.model.impl;version="1.22.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit",
+ org.eclipse.emfforms.spi.rulerepository.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 5d24c74..b517bf5 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.jdt.core.prefs
index 984712d..643ebf1 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.jdt.core.prefs
@@ -24,9 +24,18 @@
 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

@@ -35,6 +44,7 @@
 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

@@ -121,6 +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.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/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.rulerepository.tooling/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ef93a1f..fa24ad3 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.rulerepository.tooling/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms RuleRepository Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.rulerepository.tooling;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.22.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)",
@@ -14,21 +14,21 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ide.util;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.rulerepository.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core.di;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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 325b04b..18686ea 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emfforms.rulerepository.tooling/src/org/eclipse/emfforms/internal/rulerepository/tooling/RuleRepositoryEditor.java b/bundles/org.eclipse.emfforms.rulerepository.tooling/src/org/eclipse/emfforms/internal/rulerepository/tooling/RuleRepositoryEditor.java
index 2650a50..0b35ed3 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.tooling/src/org/eclipse/emfforms/internal/rulerepository/tooling/RuleRepositoryEditor.java
+++ b/bundles/org.eclipse.emfforms.rulerepository.tooling/src/org/eclipse/emfforms/internal/rulerepository/tooling/RuleRepositoryEditor.java
@@ -49,7 +49,11 @@
 	 */
 	@Override
 	protected List<Action> getToolbarActions() {
-		final List<Action> result = new LinkedList<Action>();
+		final List<Action> result = new LinkedList<>();
+		if (!isEditable(getEditorInput())) {
+			// If the input isn't editable, toolbar actions shouldn't be available
+			return result;
+		}
 
 		result.add(new LoadEcoreAction(getResourceSet(), "Load ViewModel")); //$NON-NLS-1$
 
diff --git a/bundles/org.eclipse.emfforms.setup.base/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.setup.base/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.setup.base/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.setup.base/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 633654f..5074c79 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.mapping;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.model.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.service;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.mapping;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.service;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.22.0,1.23.0)"
diff --git a/bundles/org.eclipse.emfforms.setup.base/pom.xml b/bundles/org.eclipse.emfforms.setup.base/pom.xml
index fae4a60..1c9f5d4 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 58b12a2..0f3f16d 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Categorization renderer using an Expandbar
 Bundle-SymbolicName: org.eclipse.emfforms.swt.categorization.expandbar
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.categorization.expandbar;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.categorization.expandbar;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.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)",
@@ -18,13 +18,13 @@
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.spi.swt.reporting;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.style.validation.model;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.internal.swt.util;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.swt.reporting;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.style.validation.model;version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
- org.eclipse.emfforms.spi.swt.core.di;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/pom.xml b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/pom.xml
index 761d563..2f5ad40 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.control.multiattribute/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.control.multiattribute/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 46b49dd..dc030ff 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,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Renderer for Multi EAttributes
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.multiattribute;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.view.control.multiattribute;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.view.control.multiattribute.celleditor;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.view.control.multiattribute;version="1.21.0",
- org.eclipse.emfforms.spi.view.control.multiattribute.celleditor;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.view.control.multiattribute;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.view.control.multiattribute.celleditor;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.view.control.multiattribute;version="1.22.0",
+ org.eclipse.emfforms.spi.view.control.multiattribute.celleditor;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/MultiAttributeRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml b/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml
index 1a6dce7..b5acd7c 100644
--- a/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml
@@ -21,7 +21,7 @@
             tester="org.eclipse.emfforms.internal.view.control.multiattribute.celleditor.XmlDateCellEditorTester">
       </cellEditor>
       <cellEditor
-            class="org.eclipse.emf.ecp.view.spi.table.swt.EnumCellEditor"
+            class="org.eclipse.emf.ecp.view.spi.table.swt.ItemProviderEnumCellEditor"
             tester="org.eclipse.emfforms.internal.view.control.multiattribute.celleditor.EnumCellEditorTester">
       </cellEditor>
    </extension>
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/pom.xml b/bundles/org.eclipse.emfforms.swt.control.multiattribute/pom.xml
index bc6cafc..17e38b5 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0baebe3..60f7b79 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,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Text Control with Autocomplete
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.text.autocomplete
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.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",
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 eeba9aa..4ec3591 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.richtext/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.control.text.richtext/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.control.text.richtext/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.control.text.richtext/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 396bb38..0419ea7 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,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Rich Text Control
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.text.richtext;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.control.text.richtext.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.control.text.richtext.renderer;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.richtext.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.control.text.richtext.renderer;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.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)"
@@ -24,7 +24,7 @@
 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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.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 417c90a..a41eb3a 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.controlgrid/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.controlgrid/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.controlgrid/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.controlgrid/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 67c617d..3d325af 100644
--- a/bundles/org.eclipse.emfforms.swt.controlgrid/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.controlgrid/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Control Grid SWT Renderer
 Bundle-SymbolicName: org.eclipse.emfforms.swt.controlgrid
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.controlgrid.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.21.0"
-Require-Bundle: org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.controlgrid.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.22.0"
+Require-Bundle: org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
diff --git a/bundles/org.eclipse.emfforms.swt.controlgrid/pom.xml b/bundles/org.eclipse.emfforms.swt.controlgrid/pom.xml
index df834a2..ce53630 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4f79f5b..c05f911 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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 d4af7aa..9ba17b0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3461f70..0c6f317 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,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core DI
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.di;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.core.di;version="1.21.0"
-Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.core.di;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core.di;version="1.22.0"
+Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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
+Service-Component: OSGI-INF/emfFormsDIRendererFactory.xml,
+ OSGI-INF/e4ContextViewServiceFactory.xml,
+ OSGI-INF/rendererSupplier.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
- org.osgi.framework;version="[1.3.0,2.0.0)"
+Import-Package: javax.inject;version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.common.di;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.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.core.di
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/e4ContextViewServiceFactory.xml b/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/e4ContextViewServiceFactory.xml
new file mode 100644
index 0000000..0cf7d9d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/e4ContextViewServiceFactory.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="e4ContextViewServiceFactory">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceFactory"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.swt.core.di.EclipseContextViewServiceFactory"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/rendererSupplier.xml b/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/rendererSupplier.xml
new file mode 100644
index 0000000..8addd42
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/rendererSupplier.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="rendererSupplier">
+   <property name="dependency.injection.annotation" value="org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer"/>
+   <service>
+      <provide interface="org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.swt.core.di.RendererSupplier"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/pom.xml b/bundles/org.eclipse.emfforms.swt.core.di/pom.xml
index 3b29962..574c987 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EMFFormsContextProviderImpl.java b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EMFFormsContextProviderImpl.java
index defbe83..0332114 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EMFFormsContextProviderImpl.java
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EMFFormsContextProviderImpl.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 2.0
@@ -10,12 +10,17 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.internal.swt.core.di;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.eclipse.e4.core.contexts.EclipseContextFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsContextProvider;
 import org.osgi.framework.FrameworkUtil;
 
@@ -27,62 +32,61 @@
  */
 public class EMFFormsContextProviderImpl implements EMFFormsContextProvider {
 
-	private IEclipseContext eclipseContext;
+	private static final String CONTEXT_NAME = "EMF Forms View Context"; //$NON-NLS-1$
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
+	// Track contexts that have been set in us to dispose with the view context.
+	// We need to keep them as long as clients may still be using them.
+	// Map the external context to our child context
+	private final Map<IEclipseContext, IEclipseContext> eclipseContexts = new HashMap<>();
+
+	// The current Eclipse context to provide to clients
+	private IEclipseContext eclipseContext;
+	private ViewModelContext viewModelContext;
+
 	@Override
 	public void instantiate(ViewModelContext context) {
+		viewModelContext = context;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#dispose()
-	 */
 	@Override
 	public void dispose() {
-		if (eclipseContext != null) {
-			eclipseContext.dispose();
-		}
+		eclipseContexts.values().forEach(IEclipseContext::dispose);
+		eclipseContexts.clear();
+		viewModelContext = null;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#getPriority()
-	 */
 	@Override
 	public int getPriority() {
 		return 0;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsContextProvider#getContext()
-	 */
 	@Override
 	public IEclipseContext getContext() {
 		if (eclipseContext == null) {
-			final IEclipseContext originalServiceContext = EclipseContextFactory
-				.getServiceContext(FrameworkUtil.getBundle(EMFFormsContextProviderImpl.class).getBundleContext());
-			eclipseContext = originalServiceContext.createChild();
+			// Was the view context created with an initial Eclipse context?
+			IEclipseContext bootstrapContext = (IEclipseContext) viewModelContext
+				.getContextValue(IEclipseContext.class.getName());
+			if (bootstrapContext == null) {
+				bootstrapContext = EclipseContextFactory
+					.getServiceContext(FrameworkUtil.getBundle(EMFFormsContextProviderImpl.class).getBundleContext());
+			}
+			setContext(bootstrapContext);
 		}
 		return eclipseContext;
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsContextProvider#setContext(org.eclipse.e4.core.contexts.IEclipseContext)
-	 */
 	@Override
 	public void setContext(IEclipseContext eclipseContext) {
-		this.eclipseContext = eclipseContext.createChild();
+		// We may have seen this context before
+		this.eclipseContext = eclipseContexts.computeIfAbsent(eclipseContext,
+			ctx -> {
+				final IEclipseContext child = ctx.createChild(CONTEXT_NAME);
+
+				// Put the view model context in the Eclipse context
+				child.set(EMFFormsViewContext.class, viewModelContext);
+
+				return child;
+			});
 	}
 
 }
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EclipseContextViewServiceFactory.java b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EclipseContextViewServiceFactory.java
new file mode 100644
index 0000000..f754c2f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EclipseContextViewServiceFactory.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsContextProvider;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * EMF Forms global view service factory that provides the Eclipse Context in the
+ * View Context.
+ *
+ * @since 1.22
+ */
+@Component(name = "e4ContextViewServiceFactory")
+public class EclipseContextViewServiceFactory implements EMFFormsViewServiceFactory<IEclipseContext> {
+
+	@Override
+	public EMFFormsViewServiceScope getScope() {
+		return EMFFormsViewServiceScope.LOCAL;
+	}
+
+	@Override
+	public EMFFormsViewServicePolicy getPolicy() {
+		return EMFFormsViewServicePolicy.LAZY;
+	}
+
+	@Override
+	public double getPriority() {
+		return 0;
+	}
+
+	@Override
+	public Class<IEclipseContext> getType() {
+		return IEclipseContext.class;
+	}
+
+	@Override
+	public IEclipseContext createService(EMFFormsViewContext emfFormsViewContext) {
+		final EMFFormsContextProvider provider = emfFormsViewContext.getService(EMFFormsContextProvider.class);
+
+		// Would be strange, indeed, if the service provided by this bundle were not there
+		return provider != null ? provider.getContext() : null;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/RendererSupplier.java b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/RendererSupplier.java
new file mode 100644
index 0000000..d781d0b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/RendererSupplier.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di;
+
+import java.util.Optional;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier;
+import org.eclipse.emf.ecp.view.model.common.AbstractRenderer;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.common.di.ContextBasedObjectSupplier;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Eclipse DI supplier of the renderer dependency. Resolvable only in a context
+ * that has both the {@link VElement} and the {@link ViewModelContext} available.
+ */
+@Component(name = "rendererSupplier", service = ExtendedObjectSupplier.class, property = "dependency.injection.annotation=org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer")
+public class RendererSupplier extends ContextBasedObjectSupplier<Renderer, AbstractSWTRenderer<? extends VElement>> {
+
+	/**
+	 * Initializes me.
+	 */
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	public RendererSupplier() {
+		super(Renderer.class, (Class) AbstractSWTRenderer.class);
+	}
+
+	@Override
+	protected boolean checkDependencies(Renderer qualifier,
+		Class<? extends AbstractSWTRenderer<? extends VElement>> requestedType, IEclipseContext context) {
+
+		return context.containsKey(VElement.class) && context.containsKey(ViewModelContext.class);
+	}
+
+	@Override
+	protected Optional<? extends AbstractSWTRenderer<? extends VElement>> compute(Renderer qualifier,
+		Class<? extends AbstractSWTRenderer<? extends VElement>> requestedType, IEclipseContext context) {
+
+		final VElement viewModelElement = context.get(VElement.class);
+		final ViewModelContext viewContext = context.get(ViewModelContext.class);
+
+		final AbstractRenderer<?> result = AbstractRenderer.getRenderer(viewModelElement, viewContext);
+		return Optional.ofNullable(result)
+			.filter(requestedType::isInstance).map(requestedType::cast);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6134163..e4c99a8 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.plugin;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.swt.core.plugin;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 f6ea270..5d356f3 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyAdditionalRendererService.java b/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyAdditionalRendererService.java
index fa8d126..735806e 100644
--- a/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyAdditionalRendererService.java
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyAdditionalRendererService.java
@@ -76,7 +76,9 @@
 	private void readAdditionalRenderer(BundleContext bundleContext) {
 		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
 			.getExtensionPoint(ADDITIONAL_RENDER_EXTENSION);
-
+		if (extensionPoint == null) {
+			return;
+		}
 		for (final IExtension extension : extensionPoint.getExtensions()) {
 
 			for (final IConfigurationElement configurationElement : extension
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyRendererService.java b/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyRendererService.java
index 143b28b..04420b4 100644
--- a/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyRendererService.java
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyRendererService.java
@@ -86,6 +86,9 @@
 	private void readRenderer(BundleContext bundleContext) {
 		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
 			.getExtensionPoint(RENDER_EXTENSION);
+		if (extensionPoint == null) {
+			return;
+		}
 		for (final IExtension extension : extensionPoint.getExtensions()) {
 
 			for (final IConfigurationElement configurationElement : extension
diff --git a/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ebc7d46..76ff19f 100644
--- a/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
@@ -2,26 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.core;version="1.21.0",
- org.eclipse.emfforms.spi.swt.core.data;version="1.21.0",
- org.eclipse.emfforms.spi.swt.core.layout;version="1.21.0",
- org.eclipse.emfforms.spi.swt.core.ui;version="1.21.0",
- org.eclipse.emfforms.spi.swt.core.util;version="1.21.0",
- org.eclipse.emfforms.swt.core;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.core.data;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.core.layout;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.core.ui;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.core.util;version="1.22.0",
+ org.eclipse.emfforms.swt.core;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/rendererFactory.xml
+Service-Component: OSGI-INF/rendererFactory.xml,
+ OSGI-INF/containerRevealProvider.xml,
+ OSGI-INF/controlRevealProvider.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.view.model.common;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.view.model.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="1.22.0",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
@@ -29,5 +33,6 @@
  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.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.emfforms.swt.core
diff --git a/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/containerRevealProvider.xml b/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/containerRevealProvider.xml
new file mode 100644
index 0000000..d45de32
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/containerRevealProvider.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="containerRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.swt.core.ContainerRevealProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/controlRevealProvider.xml b/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/controlRevealProvider.xml
new file mode 100644
index 0000000..4de8574
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/controlRevealProvider.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="controlRevealProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.internal.swt.core.ControlRevealProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.core/pom.xml b/bundles/org.eclipse.emfforms.swt.core/pom.xml
index b523620..a976a97 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.21.0-SNAPSHOT</version>
+    <version>1.22.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/internal/swt/core/ContainerRevealProvider.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/ContainerRevealProvider.java
new file mode 100644
index 0000000..90de7ba
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/ContainerRevealProvider.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.model.VContainer;
+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.util.ViewSwitch;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillDown;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for {@link VContainer}s and {@link VView}s.
+ *
+ * @since 1.22
+ */
+@Component(name = "containerRevealProvider")
+public class ContainerRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double containerBid = 5.0;
+	private final Double viewBid = 1.0;
+
+	private final Switch<EList<? extends VElement>> childrenSwitch = new ViewSwitch<EList<? extends VElement>>() {
+		@Override
+		public EList<? extends VElement> caseView(VView object) {
+			return object.getChildren();
+		}
+
+		@Override
+		public EList<? extends VElement> caseContainer(VContainer object) {
+			return object.getChildren();
+		}
+
+		@Override
+		public EList<? extends VElement> defaultCase(EObject object) {
+			return ECollections.emptyEList();
+		}
+
+		@DrillDown
+		private Iterable<? extends VElement> drillDown(VElement element) {
+			return childrenSwitch.doSwitch(element);
+		}
+	};
+
+	/**
+	 * I bid on the {@code element} if it is a {@link VContainer}
+	 * or a {@link VView}.
+	 *
+	 * @param element the element to bid on
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VElement element) {
+		return element instanceof VContainer ? containerBid
+			: element instanceof VView ? viewBid
+				: null;
+	}
+
+	/**
+	 * Create an intermediate reveal step to drill down into a container {@code element}.
+	 *
+	 * @param element the container in which to drill down
+	 * @param object the object to reveal
+	 * @param helper the reveal helper for drill-down
+	 * @return the drill-down reveal step
+	 */
+	@Create
+	public RevealStep reveal(VElement element, EObject object, RevealHelper helper) {
+		return helper.drillDown(this, childrenSwitch);
+	}
+
+	@Reveal
+	private RevealStep drillDown(EObject object, @Renderer AbstractSWTRenderer<?> renderer,
+		RevealStep nextStep) {
+
+		return RevealStep.reveal(nextStep.getViewModel(), object, renderer::scrollToReveal);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/ControlRevealProvider.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/ControlRevealProvider.java
new file mode 100644
index 0000000..6fe0c20
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/ControlRevealProvider.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import static org.eclipse.emf.ecp.common.spi.UniqueSetting.createSetting;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.ViewService;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.controlmapper.EMFFormsSettingToControlMapper;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.swt.widgets.Display;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * A reveal provider for {@link VControl}s that reveals a specific {@link EStructuralFeature} setting.
+ *
+ * @since 1.22
+ */
+@Component(name = "controlRevealProvider")
+public class ControlRevealProvider implements EMFFormsRevealProvider {
+
+	private final Double controlBid = 10.0;
+
+	/**
+	 * I bid on the {@code control} if it is presents the given {@code feature} of the domain
+	 * model {@code object}.
+	 *
+	 * @param control the element to bid on
+	 * @param object the domain object to bid on
+	 * @param feature the feature of the domain {@code object} to bid on
+	 * @param settingMapper the setting-to-control mapper service
+	 * @return my bid
+	 */
+	@Bid
+	public Double canReveal(VControl control, EObject object, EStructuralFeature feature,
+		@ViewService EMFFormsSettingToControlMapper settingMapper) {
+
+		// Not a complex control such as table that is handled separately
+		return control.eClass() == VViewPackage.Literals.CONTROL
+			&& settingMapper.hasMapping(createSetting(object, feature), control)
+				? controlBid
+				: null;
+	}
+
+	/**
+	 * Create a terminal reveal step to focus into the specific setting control in a
+	 * container {@code element}.
+	 *
+	 * @param renderer the renderer of the control to reveal
+	 * @param object the object to reveal
+	 * @param feature the feature of the domain {@code object} to reveal
+	 * @return the specific control reveal step
+	 */
+	@Create
+	public RevealStep reveal(@Renderer AbstractSWTRenderer<?> renderer, EObject object,
+		EStructuralFeature feature) {
+
+		return RevealStep.reveal(renderer.getVElement(), object, feature,
+			() -> Display.getDefault().asyncExec(renderer::scrollToReveal));
+	}
+
+}
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 1d8c93f..59e8c75 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
@@ -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 2.0
@@ -11,15 +11,20 @@
  * Contributors:
  * Edagr Mueller - initial API and implementation
  * Eugen Neufeld - Refactoring
+ * Christian W. Damus - bugs 527686, 548592
  ******************************************************************************/
 package org.eclipse.emfforms.spi.swt.core;
 
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.emf.common.util.AbstractTreeIterator;
 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.ModelChangeListener;
@@ -33,6 +38,7 @@
 import org.eclipse.emfforms.spi.swt.core.layout.EMFFormsSWTLayoutUtil;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.layout.GridData;
@@ -100,37 +106,7 @@
 		preInit();
 		controls = new LinkedHashMap<SWTGridCell, Control>();
 		if (getViewModelContext() != null) {
-			listener = new ModelChangeListener() {
-				@Override
-				public void notifyChange(ModelChangeNotification notification) {
-					if (!renderingFinished) {
-						return;
-					}
-					if (notification.getRawNotification().isTouch()) {
-						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()) {
-						if (!ignoreEnableOnReadOnly()) {
-							applyEnable();
-						}
-					} else if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Readonly()) {
-						applyReadOnly();
-					}
-					if (notification.getNotifier() != getVElement()) {
-						return;
-					}
-					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Visible()) {
-						applyVisible();
-					} else if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Diagnostic()) {
-						final VDiagnostic newDia = (VDiagnostic) notification.getRawNotification().getNewValue();
-						final VDiagnostic oldDia = (VDiagnostic) notification.getRawNotification().getOldValue();
-						applyValidation(oldDia, newDia);
-						applyValidation();
-					}
-				}
-
-			};
+			listener = new ViewChangeListener();
 			getViewModelContext().registerViewChangeListener(listener);
 		}
 		getViewModelContext().addContextUser(this);
@@ -237,6 +213,8 @@
 			return;
 		}
 		renderingFinished = true;
+
+		// Apply visibility, enablement, and validation decorations
 		if (!getVElement().isVisible()) {
 			/* convention is to render visible, so only call apply if we are invisible */
 			applyVisible();
@@ -246,13 +224,30 @@
 			applyEnable();
 		}
 		applyValidation();
-		parent.addDisposeListener(new DisposeListener() {
 
-			@Override
-			public void widgetDisposed(DisposeEvent event) {
-				dispose();
-			}
-		});
+		// When some control is disposed, dispose me. Don't worry about
+		// my parent composite because I could be a detail view that is cached
+		// independently of it in a master-detail situation
+		if (!controls.isEmpty()) {
+			controls.values().iterator().next().addDisposeListener(new DisposeListener() {
+
+				@Override
+				public void widgetDisposed(DisposeEvent event) {
+					dispose();
+				}
+			});
+		}
+	}
+
+	/**
+	 * Query whether rendering has completed and I am ready for user interaction.
+	 *
+	 * @return whether rendering has finished
+	 *
+	 * @since 1.22
+	 */
+	protected boolean isRenderingFinished() {
+		return renderingFinished;
 	}
 
 	/**
@@ -368,4 +363,118 @@
 		return control.getDisplay().getSystemFont().getFontData()[0].getName();
 	}
 
+	/**
+	 * If my control is rendered within a scrolled composite, scroll that composite to reveal me.
+	 *
+	 * @since 1.22
+	 */
+	public void scrollToReveal() {
+		if (controls != null && !controls.isEmpty()) {
+			@SuppressWarnings("serial")
+			final Iterator<Control> iter = new AbstractTreeIterator<Control>(controls.values(), false) {
+				@Override
+				protected Iterator<? extends Control> getChildren(Object object) {
+					if (object instanceof Composite) {
+						return Arrays.asList(((Composite) object).getChildren()).iterator();
+					}
+					if (object instanceof Collection<?>) {
+						@SuppressWarnings("unchecked")
+						final Collection<? extends Control> collection = (Collection<? extends Control>) object;
+						return collection.iterator();
+					}
+					return Collections.emptyIterator();
+				}
+			};
+
+			while (iter.hasNext()) {
+				final Control next = iter.next();
+				if (next instanceof Composite) {
+					// Don't attempt to reveal composites
+					continue;
+				}
+
+				if (scrollToReveal(next)) {
+					break;
+				}
+			}
+		}
+	}
+
+	/**
+	 * Scroll composites as necessary to reveal the given {@code control} and
+	 * then request focus.
+	 *
+	 * @param control the control to reveal and focus
+	 * @return whether the focus was successfully set (usually because the control
+	 *         is one that can receive input focus)
+	 *
+	 * @since 1.22
+	 */
+	protected boolean scrollToReveal(final Control control) {
+		for (Composite parent = control.getParent(); parent != null; parent = parent.getParent()) {
+			if (parent instanceof ScrolledComposite) {
+				final ScrolledComposite scrolled = (ScrolledComposite) parent;
+				scrolled.showControl(control);
+			}
+		}
+
+		// Try to request focus
+		return control.setFocus();
+	}
+
+	/**
+	 * Query whether a given {@code control} can plausibly be revealed.
+	 *
+	 * @param control a control to be revealed
+	 * @return whether it reasonably can be revealed
+	 *
+	 * @since 1.22
+	 */
+	protected boolean canReveal(Control control) {
+		return control != null && !control.isDisposed() && control.isVisible();
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * A listener that reacts to view-model changes to update the UI accordingly.
+	 * Examples include updating enablement/visibility state and diagnostic decorations.
+	 */
+	private final class ViewChangeListener implements ModelChangeListener {
+		@Override
+		public void notifyChange(ModelChangeNotification notification) {
+			if (!renderingFinished) {
+				return;
+			}
+
+			// We ned to handle touch events for the diagnostic if in the case of
+			// re-use of the view model we update diagnostics in situ
+			if (notification.getRawNotification().isTouch() &&
+				notification.getStructuralFeature() != VViewPackage.Literals.ELEMENT__DIAGNOSTIC) {
+				return;
+			}
+			// Always apply enable and read-only if it changed because it might have changed for a parent
+			if (notification.getStructuralFeature() == VViewPackage.Literals.ELEMENT__ENABLED) {
+				if (!ignoreEnableOnReadOnly()) {
+					applyEnable();
+				}
+			} else if (notification.getStructuralFeature() == VViewPackage.Literals.ELEMENT__READONLY) {
+				applyReadOnly();
+			}
+			if (notification.getNotifier() != getVElement()) {
+				return;
+			}
+			if (notification.getStructuralFeature() == VViewPackage.Literals.ELEMENT__VISIBLE) {
+				applyVisible();
+			} else if (notification.getStructuralFeature() == VViewPackage.Literals.ELEMENT__DIAGNOSTIC) {
+				final VDiagnostic newDia = (VDiagnostic) notification.getRawNotification().getNewValue();
+				final VDiagnostic oldDia = (VDiagnostic) notification.getRawNotification().getOldValue();
+				applyValidation(oldDia, newDia);
+				applyValidation();
+			}
+		}
+	}
+
 }
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/.checkstyle b/bundles/org.eclipse.emfforms.swt.reference.table/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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.swt.reference.table/.classpath b/bundles/org.eclipse.emfforms.swt.reference.table/.classpath
new file mode 100644
index 0000000..4f83b23
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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.8"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/.project b/bundles/org.eclipse.emfforms.swt.reference.table/.project
new file mode 100644
index 0000000..3a34e82
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.reference.table</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.swt.reference.table/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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.swt.reference.table/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0309974
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,418 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.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=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.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/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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.swt.reference.table/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..6ed4937
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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">/**\n * @return the ${bare_field_name}\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">/**\n * @param ${param} the ${bare_field_name} to set\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">/**\n * ${tags}\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">/*******************************************************************************\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n * \n * Contributors\:\n * ${user} - initial API and implementation\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">/**\n * @author ${user}\n *\n * ${tags}\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">/**\n * ${tags}\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">/**\n * {@inheritDoc}\n * ${see_to_overridden}\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">/**\n * ${tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\n\t\t\t// Log AND handle Exceptions if possible \n            //\n            // You can just uncomment one of the lines below to log an exception\:\n\t\t\t// logException will show the logged excpetion to the user\n\t\t\t// ModelUtil.logException(${exception_var});\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// logWarning will only add the message to the error log\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\n\t\t\t//\t\t\t\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\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}\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.swt.reference.table/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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.swt.reference.table/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..cfb400b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+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_FIELD=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_DEFAULT_METHOD=Ignore
+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_ANNOTATION=Warning
+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
+changed_execution_env=Error
+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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
+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.swt.reference.table/.settings/org.eclipse.pde.ds.annotations.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.pde.ds.annotations.prefs
new file mode 100644
index 0000000..960a807
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+enabled=true
+generateBundleActivationPolicyLazy=true
+path=OSGI-INF
+validationErrorLevel=error
+validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.swt.reference.table/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/.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.swt.reference.table/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.reference.table/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e976df0
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/META-INF/MANIFEST.MF
@@ -0,0 +1,37 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Table Reference Selection Composite
+Bundle-SymbolicName: org.eclipse.emfforms.swt.reference.table;singleton:=true
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Export-Package: org.eclipse.emfforms.swt.internal.reference.table;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)"
+Import-Package: org.eclipse.emf.ecp.spi.common.ui.composites;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.core.swt;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="1.3.0"
+Automatic-Module-Name: org.eclipse.emfforms.swt.reference.table
+Service-Component: OSGI-INF/selectionTableCompositeStrategyProvider.xml
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.swt.reference.table/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..2a7b00b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+selectionColumn=Selection
+selectionTooltip=Objects available to add to the {0}
+reference=reference
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/OSGI-INF/selectionTableCompositeStrategyProvider.xml b/bundles/org.eclipse.emfforms.swt.reference.table/OSGI-INF/selectionTableCompositeStrategyProvider.xml
new file mode 100644
index 0000000..f4655e1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/OSGI-INF/selectionTableCompositeStrategyProvider.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="selectionTableCompositeStrategyProvider">
+   <service>
+      <provide interface="org.eclipse.emf.ecp.ui.view.swt.reference.SelectionCompositeStrategy$Provider"/>
+   </service>
+   <reference bind="setDatabinding" interface="org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF" name="Databinding"/>
+   <implementation class="org.eclipse.emfforms.swt.internal.reference.table.SelectionTableCompositeStrategyProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/about.html b/bundles/org.eclipse.emfforms.swt.reference.table/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/about.html
@@ -0,0 +1,36 @@
+<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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.swt.reference.table/build.properties b/bundles/org.eclipse.emfforms.swt.reference.table/build.properties
new file mode 100644
index 0000000..b9082ff
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+src.includes = about.html
+bin.includes = META-INF/,\
+               OSGI-INF/,\
+               model/,\
+               about.html,\
+               plugin.xml,\
+               .
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/model/selection.ecore b/bundles/org.eclipse.emfforms.swt.reference.table/model/selection.ecore
new file mode 100644
index 0000000..2339f2f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/model/selection.ecore
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="selection" nsURI="http://www.eclipse.org/emf/ecp/view/reference/table/selection"
+    nsPrefix="sel">
+  <eClassifiers xsi:type="ecore:EClass" name="Selection">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extent" upperBound="-1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/plugin.xml b/bundles/org.eclipse.emfforms.swt.reference.table/plugin.xml
new file mode 100644
index 0000000..91a4411
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.emf.ecore.dynamic_package">
+      <resource
+            location="model/selection.ecore"
+            uri="http://www.eclipse.org/emf/ecp/view/reference/table/selection">
+      </resource>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/pom.xml b/bundles/org.eclipse.emfforms.swt.reference.table/pom.xml
new file mode 100644
index 0000000..510b255
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/pom.xml
@@ -0,0 +1,18 @@
+<?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"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.22.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.swt.reference.table</artifactId>
+  <packaging>eclipse-plugin</packaging>
+  <version>1.22.0-SNAPSHOT</version>
+
+</project>
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDmrSegmentConverter.java b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDmrSegmentConverter.java
new file mode 100644
index 0000000..0a8641f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDmrSegmentConverter.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import java.util.List;
+import java.util.function.Function;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.ListDiff;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.list.DelegatingListProperty;
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.DelegatingValueProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.IEMFListProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.databinding.internal.EMFListPropertyDecorator;
+import org.eclipse.emf.databinding.internal.EMFValuePropertyDecorator;
+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.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
+import org.eclipse.emf.ecp.view.spi.model.VFeatureDomainModelReferenceSegment;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.internal.core.services.databinding.SegmentConverterListResultImpl;
+import org.eclipse.emfforms.internal.core.services.databinding.SegmentConverterValueResultImpl;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.DomainModelReferenceSegmentConverterEMF;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterListResultEMF;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterValueResultEMF;
+
+/**
+ * Converter for a DMR Segment that needs to be delegated to another object than the
+ * source on which it is being accessed.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings({ "unchecked", "rawtypes", "restriction" }) // EMF APIs are provisional
+class DelegatingDmrSegmentConverter implements DomainModelReferenceSegmentConverterEMF {
+
+	private final VFeatureDomainModelReferenceSegment segment;
+	private final EStructuralFeature segmentFeature;
+	private final Function<? super EObject, ?> delegator;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param segment The {@link VDomainModelReferenceSegment} this segment converter is applicable for
+	 * @param segmentFeature The {@link EStructuralFeature} of the segment
+	 * @param delegator mapping of source object to the object to which to delegate access
+	 *            to the segment
+	 */
+	DelegatingDmrSegmentConverter(VFeatureDomainModelReferenceSegment segment, EStructuralFeature segmentFeature,
+		Function<? super EObject, ?> delegator) {
+		this.segment = segment;
+		this.segmentFeature = segmentFeature;
+		this.delegator = delegator;
+	}
+
+	@Override
+	public double isApplicable(VDomainModelReferenceSegment segment) {
+		return segment == this.segment ? Double.POSITIVE_INFINITY : NOT_APPLICABLE;
+	}
+
+	@Override
+	public SegmentConverterValueResultEMF convertToValueProperty(VDomainModelReferenceSegment segment,
+		EClass segmentRoot, EditingDomain editingDomain) throws DatabindingFailedException {
+		final EClass nextEClass = segmentFeature instanceof EReference
+			? EReference.class.cast(segmentFeature).getEReferenceType()
+			: null;
+		return new SegmentConverterValueResultImpl(valueDecorator(), nextEClass);
+	}
+
+	private IEMFValueProperty valueDecorator() {
+		final EStructuralFeature feature = segmentFeature;
+		final IValueProperty property = EMFProperties.value(feature);
+
+		return new EMFValuePropertyDecorator(new DelegatingValueProperty(feature) {
+			@Override
+			protected IValueProperty doGetDelegate(Object source) {
+				return property;
+			}
+
+			Object substitute(Object source) {
+				return delegator.apply((EObject) source);
+			}
+
+			@Override
+			protected Object doGetValue(Object source) {
+				return super.doGetValue(substitute(source));
+			}
+
+			@Override
+			protected void doSetValue(Object source, Object value) {
+				super.doSetValue(substitute(source), value);
+			}
+
+			@Override
+			public IObservableValue observe(Object source) {
+				return super.observe(substitute(source));
+			}
+
+			@Override
+			public IObservableValue observe(Realm realm, Object source) {
+				return super.observe(realm, substitute(source));
+			}
+		}, feature);
+	}
+
+	@Override
+	public SegmentConverterListResultEMF convertToListProperty(VDomainModelReferenceSegment segment, EClass segmentRoot,
+		EditingDomain editingDomain) throws DatabindingFailedException {
+		final EClass nextEClass = segmentFeature instanceof EReference
+			? EReference.class.cast(segmentFeature).getEReferenceType()
+			: null;
+		return new SegmentConverterListResultImpl(listDecorator(), nextEClass);
+	}
+
+	private IEMFListProperty listDecorator() {
+
+		final EStructuralFeature feature = segmentFeature;
+		final IListProperty property = EMFProperties.list(feature);
+
+		// BEGIN COMPLEX CODE
+		return new EMFListPropertyDecorator(new DelegatingListProperty(feature) {
+			@Override
+			protected IListProperty doGetDelegate(Object source) {
+				return property;
+			}
+
+			Object substitute(Object source) {
+				return delegator.apply((EObject) source);
+			}
+
+			@Override
+			protected List doGetList(Object source) {
+				return super.doGetList(substitute(source));
+			}
+
+			@Override
+			protected void doSetList(Object source, List list) {
+				super.doSetList(substitute(source), list);
+			}
+
+			@Override
+			protected void doUpdateList(Object source, ListDiff diff) {
+				super.doUpdateList(substitute(source), diff);
+			}
+
+			@Override
+			public IObservableList observe(Object source) {
+				return super.observe(substitute(source));
+			}
+
+			@Override
+			public IObservableList observe(Realm realm, Object source) {
+				return super.observe(realm, substitute(source));
+			}
+		}, feature);
+	}
+
+	@Override
+	public Setting getSetting(VDomainModelReferenceSegment segment, EObject eObject) throws DatabindingFailedException {
+		return ((InternalEObject) delegator.apply(eObject)).eSetting(segmentFeature);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDomainModelReferenceConverter.java b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDomainModelReferenceConverter.java
new file mode 100644
index 0000000..fb9a5c2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDomainModelReferenceConverter.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import java.util.List;
+import java.util.function.Function;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.ListDiff;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.list.DelegatingListProperty;
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.DelegatingValueProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.IEMFListProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.databinding.internal.EMFListPropertyDecorator;
+import org.eclipse.emf.databinding.internal.EMFValuePropertyDecorator;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.DomainModelReferenceConverterEMF;
+
+/**
+ * Converter for a DMR that needs to be delegated to another object than the
+ * source on which it is being accessed.
+ */
+@SuppressWarnings({ "unchecked", "rawtypes", "restriction" }) // EMF APIs are provisional
+class DelegatingDomainModelReferenceConverter implements DomainModelReferenceConverterEMF {
+
+	private final VFeaturePathDomainModelReference dmr;
+	private final Function<? super EObject, ?> delegator;
+
+	/**
+	 * Initializes me with the DMR that I convert and a function computing the
+	 * source object to delegate the reference access to.
+	 *
+	 * @param dmr the DMR to convert
+	 * @param delegator mapping of source object to the object to which to delegate access
+	 *            to the DMR
+	 */
+	DelegatingDomainModelReferenceConverter(VFeaturePathDomainModelReference dmr,
+		Function<? super EObject, ?> delegator) {
+
+		super();
+
+		this.dmr = dmr;
+		this.delegator = delegator;
+	}
+
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		return domainModelReference == dmr ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY;
+	}
+
+	@Override
+	public IEMFValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+
+		return valueDecorator();
+	}
+
+	private IEMFValueProperty valueDecorator() {
+		final EStructuralFeature feature = dmr.getDomainModelEFeature();
+		final IValueProperty property = EMFProperties.value(feature);
+
+		return new EMFValuePropertyDecorator(new DelegatingValueProperty(feature) {
+			@Override
+			protected IValueProperty doGetDelegate(Object source) {
+				return property;
+			}
+
+			Object substitute(Object source) {
+				return delegator.apply((EObject) source);
+			}
+
+			@Override
+			protected Object doGetValue(Object source) {
+				return super.doGetValue(substitute(source));
+			}
+
+			@Override
+			protected void doSetValue(Object source, Object value) {
+				super.doSetValue(substitute(source), value);
+			}
+
+			@Override
+			public IObservableValue observe(Object source) {
+				return super.observe(substitute(source));
+			}
+
+			@Override
+			public IObservableValue observe(Realm realm, Object source) {
+				return super.observe(realm, substitute(source));
+			}
+		}, feature);
+	}
+
+	@Override
+	public IEMFValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EClass rootEClass,
+		EditingDomain editingDomain) throws DatabindingFailedException {
+
+		return valueDecorator();
+	}
+
+	@Override
+	public IEMFListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+
+		final EStructuralFeature feature = dmr.getDomainModelEFeature();
+		final IListProperty property = EMFProperties.list(feature);
+
+		// BEGIN COMPLEX CODE
+		return new EMFListPropertyDecorator(new DelegatingListProperty(feature) {
+			@Override
+			protected IListProperty doGetDelegate(Object source) {
+				return property;
+			}
+
+			Object substitute(Object source) {
+				return delegator.apply((EObject) source);
+			}
+
+			@Override
+			protected List doGetList(Object source) {
+				return super.doGetList(substitute(source));
+			}
+
+			@Override
+			protected void doSetList(Object source, List list) {
+				super.doSetList(substitute(source), list);
+			}
+
+			@Override
+			protected void doUpdateList(Object source, ListDiff diff) {
+				super.doUpdateList(substitute(source), diff);
+			}
+
+			@Override
+			public IObservableList observe(Object source) {
+				return super.observe(substitute(source));
+			}
+
+			@Override
+			public IObservableList observe(Realm realm, Object source) {
+				return super.observe(realm, substitute(source));
+			}
+		}, feature);
+		// END COMPLEX CODE
+	}
+
+	@Override
+	public Setting getSetting(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+
+		final EStructuralFeature feature = dmr.getDomainModelEFeature();
+		return ((InternalEObject) delegator.apply(object)).eSetting(feature);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DummyDomainExpander.java b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DummyDomainExpander.java
new file mode 100644
index 0000000..a0c4839
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/DummyDomainExpander.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import java.util.Optional;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
+import org.eclipse.emfforms.spi.core.services.domainexpander.EMFFormsDMRSegmentExpander;
+import org.eclipse.emfforms.spi.core.services.domainexpander.EMFFormsExpandingFailedException;
+
+/**
+ * Dummy Domain expander doing nothing because we do not need to expand the extent segments.
+ * 
+ * @author Lucas Koehler
+ *
+ */
+public class DummyDomainExpander implements EMFFormsDMRSegmentExpander {
+
+	private final VDomainModelReferenceSegment segment;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param segment The {@link VDomainModelReferenceSegment} which this expander is applicable for
+	 */
+	DummyDomainExpander(VDomainModelReferenceSegment segment) {
+		this.segment = segment;
+	}
+
+	@Override
+	public Optional<EObject> prepareDomainObject(VDomainModelReferenceSegment segment, EObject domainObject)
+		throws EMFFormsExpandingFailedException {
+		// We do not need expansion for the extent segment
+		return Optional.empty();
+	}
+
+	@Override
+	public double isApplicable(VDomainModelReferenceSegment segment) {
+		return this.segment == segment ? Double.POSITIVE_INFINITY : NOT_APPLICABLE;
+	}
+
+	@Override
+	public boolean needsToExpandLastSegment() {
+		return false;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/SelectionTableCompositeStrategyProvider.java b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/SelectionTableCompositeStrategyProvider.java
new file mode 100644
index 0000000..0c902e6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/SelectionTableCompositeStrategyProvider.java
@@ -0,0 +1,254 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import static java.util.Collections.singleton;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.ui.view.swt.reference.SelectionCompositeStrategy;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VFeatureDomainModelReferenceSegment;
+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.model.VViewModelProperties;
+import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.view.spi.multisegment.model.MultiSegmentUtil;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * Provider of a selection composite strategy that builds a selection table viewer
+ * from a {@linkplain VTableControl table control model}.
+ */
+@Component(name = "selectionTableCompositeStrategyProvider")
+public class SelectionTableCompositeStrategyProvider implements SelectionCompositeStrategy.Provider {
+
+	/**
+	 * Filter key for view registration to apply the view to the context of the selection
+	 * table composite specifically in the case that some other view is also available
+	 * that is intended for the editor. The value of the filter is the name of the reference
+	 * feature for which objects are to be selected.
+	 */
+	public static final String VIEW_FILTER_KEY = "selectionTableComposite"; //$NON-NLS-1$
+
+	private static final Double BID = 1.0;
+
+	private final Map<UniqueSetting, VTableControl> recentlyQueriedTables = new HashMap<>();
+
+	private EMFFormsDatabindingEMF databinding;
+
+	/**
+	 * Initializes me.
+	 */
+	public SelectionTableCompositeStrategyProvider() {
+		super();
+	}
+
+	/**
+	 * Queries my bid on a selection table composite strategy for selection of objects to add
+	 * to the given {@code reference} of an {@code owner} object.
+	 *
+	 * @param owner the owner of the reference to be edited
+	 * @param reference the reference to which to add objects
+	 *
+	 * @return my bid, or {@code null} if I have nothing to offer
+	 */
+	@Bid
+	public Double provides(EObject owner, EReference reference) {
+		final UniqueSetting key = UniqueSetting.createSetting(owner, reference);
+		final VTableControl table = getTableControl(key);
+		if (table != null) {
+			recentlyQueriedTables.put(key, table);
+		}
+		return table != null ? BID : null;
+	}
+
+	private VTableControl getTableControl(UniqueSetting key) {
+		VTableControl result = recentlyQueriedTables.get(key);
+		if (result == null) {
+			result = getTableControl(key.getEObject(), key.getEStructuralFeature());
+		}
+		return result;
+	}
+
+	/**
+	 * Obtain the view model for selecting objects to add the the {@code reference}
+	 * of an {@code owner}.
+	 *
+	 * @param owner the owner of the {@code reference} being edited
+	 * @param feature the reference feature being edited
+	 * @return the view model, or {@code null} if there is none
+	 */
+	protected VTableControl getTableControl(EObject owner, EStructuralFeature feature) {
+		VTableControl result = null;
+
+		final VViewModelProperties loadingProperties = getLoadingProperties(owner, feature);
+
+		// Require our filter property to be sure only to get views that are specifically
+		// designed for usage in the selection composite
+		final VView view = ViewProviderHelper.getView(owner, loadingProperties, singleton(VIEW_FILTER_KEY));
+
+		if (view != null) {
+			// It must have a table for our reference
+			result = findTableControl(view, owner, feature);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Obtain the view model loading properties for filtering the applicable view models.
+	 *
+	 * @param owner the owner of the {@code reference} being edited
+	 * @param feature the reference feature being edited
+	 * @return the view model filter properties
+	 */
+	protected VViewModelProperties getLoadingProperties(EObject owner, EStructuralFeature feature) {
+		final VViewModelLoadingProperties result = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
+		result.addNonInheritableProperty(VIEW_FILTER_KEY, feature.getName());
+		return result;
+	}
+
+	/**
+	 * Create my selection table composite strategy for selection of objects to add
+	 * to the given {@code reference} of an {@code owner} object.
+	 *
+	 * @param owner the owner of the reference to be edited
+	 * @param reference the reference to which to add objects
+	 *
+	 * @return my bid, or {@code null} if I have nothing to offer
+	 */
+	@Create
+	public SelectionCompositeStrategy create(EObject owner, EReference reference) {
+		SelectionCompositeStrategy result = null;
+		final UniqueSetting key = UniqueSetting.createSetting(owner, reference);
+		final VTableControl table = getTableControl(key);
+
+		if (table != null) {
+			// Don't keep the cache in case the next query would have a different result
+			recentlyQueriedTables.remove(key);
+			result = strategy(table);
+		}
+
+		return result;
+	}
+
+	private SelectionCompositeStrategy strategy(VTableControl table) {
+		return (owner, reference, extent) -> new TableSelectionCompositeImpl(
+			extent, table, owner, reference);
+	}
+
+	/**
+	 * Search for a table control in the given {@code view} that edits a {@code feature}.
+	 *
+	 * @param view a view to search
+	 * @param owner the owner of the {@code feature} being edited
+	 * @param feature the feature to be edited
+	 *
+	 * @return a table editing the {@code feature}, or {@code null} if none
+	 */
+	private VTableControl findTableControl(VView view, EObject owner, EStructuralFeature feature) {
+		VTableControl result = null;
+
+		for (final Iterator<EObject> iter = view.eAllContents(); result == null && iter.hasNext();) {
+			final EObject next = iter.next();
+			if (next instanceof VTableControl) {
+				final VTableControl table = (VTableControl) next;
+				final VDomainModelReference dmr = table.getDomainModelReference();
+				if (dmr == null) {
+					continue;
+				}
+
+				if (dmr.getSegments().isEmpty() && dmr instanceof VTableDomainModelReference) {
+					// The TableDMRConverter ignores single-valued references, but we
+					// have to let them be specified anyways because it's the only
+					// thing that can provide the column DMRs
+					final VTableDomainModelReference tdmr = (VTableDomainModelReference) dmr;
+					if (tdmr.getDomainModelEFeature() == feature
+						|| resolvesTo(tdmr.getDomainModelReference(), owner, feature)) {
+
+						// That's the one
+						result = table;
+					}
+				} else if (!dmr.getSegments().isEmpty() && MultiSegmentUtil.getMultiSegment(dmr).isPresent()) {
+					// The MultiSegmentConverter does not handle single-value reference, but we have to let them be
+					// specified anyways because it's the only thing that can provide the column DMRs.
+					// Copy the dmr and replace the multi segment with a feature segment in the copied version. See if
+					// this can be resolved to our target feature.
+					final VDomainModelReference copiedDmr = EcoreUtil.copy(dmr);
+					final VMultiDomainModelReferenceSegment multiSegment = MultiSegmentUtil.getMultiSegment(copiedDmr)
+						.get();
+					copiedDmr.getSegments().remove(multiSegment);
+					final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
+						.createFeatureDomainModelReferenceSegment();
+					segment.setDomainModelFeature(multiSegment.getDomainModelFeature());
+					copiedDmr.getSegments().add(segment);
+					if (resolvesTo(copiedDmr, owner, feature)) {
+						result = table;
+					}
+				} else if (resolvesTo(dmr, owner, feature)) {
+					// That's the one
+					result = table;
+				}
+			}
+		}
+
+		return result;
+	}
+
+	private boolean resolvesTo(VDomainModelReference dmr, EObject owner, EStructuralFeature feature) {
+		boolean result = false;
+
+		EStructuralFeature.Setting setting;
+		try {
+			setting = databinding.getSetting(dmr, owner);
+			result = setting != null && setting.getEStructuralFeature() == feature;
+		} catch (final DatabindingFailedException e) {
+			// This table is of no use to us
+		}
+
+		return result;
+	}
+
+	//
+	// Component lifecycle and dependencies
+	//
+
+	/**
+	 * Inject my data binding service dependency.
+	 *
+	 * @param databinding the data binding service to set
+	 */
+	@Reference(unbind = "-")
+	void setDatabinding(EMFFormsDatabindingEMF databinding) {
+		this.databinding = databinding;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/TableSelectionCompositeImpl.java b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/TableSelectionCompositeImpl.java
new file mode 100644
index 0000000..114cf07
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.reference.table/src/org/eclipse/emfforms/swt/internal/reference/table/TableSelectionCompositeImpl.java
@@ -0,0 +1,444 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import java.util.Collection;
+import java.util.Hashtable;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.ComputedValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.util.EList;
+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.EStructuralFeature;
+import org.eclipse.emf.ecp.spi.common.ui.composites.SelectModelElementCompositeImpl;
+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.VDomainModelReference;
+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;
+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.reporting.InvalidGridDescriptionReport;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+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.swt.TableControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.DomainModelReferenceConverterEMF;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.DomainModelReferenceSegmentConverterEMF;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
+import org.eclipse.emfforms.spi.core.services.domainexpander.EMFFormsDMRSegmentExpander;
+import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.swt.table.ColumnConfigurationBuilder;
+import org.eclipse.emfforms.spi.swt.table.TableViewerCompositeBuilder;
+import org.eclipse.emfforms.spi.swt.table.TableViewerSWTBuilder;
+import org.eclipse.emfforms.view.spi.multisegment.model.MultiSegmentUtil;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentFactory;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Implementation of a table selection composite that is described by a view model.
+ */
+public class TableSelectionCompositeImpl extends SelectModelElementCompositeImpl {
+
+	/** Namespace URI of the dynamic selection extent package. */
+	private static final String SELECTION_NS_URI = "http://www.eclipse.org/emf/ecp/view/reference/table/selection"; //$NON-NLS-1$
+
+	/** The selection extent package. */
+	private static final EPackage SELECTION_PACKAGE = EPackage.Registry.INSTANCE.getEPackage(SELECTION_NS_URI);
+
+	/** The <em>Selection</em> class. */
+	private static final EClass SELECTION_CLASS = (EClass) SELECTION_PACKAGE.getEClassifier("Selection"); //$NON-NLS-1$
+
+	/** The <em>extent</em> reference of the <em>Selection</em> class. */
+	private static final EStructuralFeature SELECTION_EXTENT = SELECTION_CLASS.getEStructuralFeature("extent"); //$NON-NLS-1$
+
+	private final Collection<? extends EObject> extent;
+	private final VTableControl tableControl;
+	private final EObject owner;
+
+	private ViewModelContext context;
+	/** Representation of the real DMR which can be used to get labels for the referenced feature. */
+	private VDomainModelReference realDMR;
+	private ServiceRegistration<DomainModelReferenceConverterEMF> dmrConverter;
+	private ServiceRegistration<DomainModelReferenceSegmentConverterEMF> segmentConverter;
+	private ServiceRegistration<EMFFormsDMRSegmentExpander> segmentExpander;
+
+	/**
+	 * Initializes me with the table view model to render.
+	 *
+	 * @param extent the collection of objects from which to make a selection
+	 * @param tableControl the view model description of the table
+	 * @param owner the owner of the {@code reference} being edited
+	 * @param reference the reference being edited
+	 */
+	public TableSelectionCompositeImpl(Collection<? extends EObject> extent, VTableControl tableControl,
+		EObject owner, EReference reference) {
+
+		super(extent, reference.isMany());
+
+		this.extent = extent;
+		this.tableControl = tableControl;
+		this.owner = owner;
+	}
+
+	@Override
+	public void dispose() {
+		if (context != null) {
+			context.dispose();
+			context = null;
+		}
+
+		if (dmrConverter != null) {
+			dmrConverter.unregister();
+		}
+
+		if (segmentConverter != null) {
+			segmentConverter.unregister();
+		}
+		if (segmentExpander != null) {
+			segmentExpander.unregister();
+		}
+
+		super.dispose();
+	}
+
+	@Override
+	protected TableViewer createViewer(Composite composite) {
+		final EObject selectionExtent = createSelectionExtent();
+
+		// Put the table in a view by itself
+		final VView tableView = VViewFactory.eINSTANCE.createView();
+		tableView.getChildren().add(tableControl);
+
+		// We don't want anything in this view to be editable: it's only for selection
+		tableView.setReadonly(true);
+
+		// Set the extent DMR into the table model
+		if (tableControl.getDomainModelReference() == null) {
+			final VFeaturePathDomainModelReference extentDMR = createLegacyExtentDmr(selectionExtent);
+			// So we have no column DMRs. What then is the point?
+			realDMR = tableControl.getDomainModelReference();
+			tableControl.setDomainModelReference(extentDMR);
+			registerDMRConverter(selectionExtent, extentDMR);
+		} else if (!tableControl.getDomainModelReference().getSegments().isEmpty()) {
+			// Segment based table dmr must have a multi segment
+			final VMultiDomainModelReferenceSegment realMultiSeg = MultiSegmentUtil
+				.getMultiSegment(tableControl.getDomainModelReference())
+				.orElseThrow(() -> new IllegalArgumentException(
+					"the table model's dmr is segment based but doesn't have a multi segment.")); //$NON-NLS-1$
+			adaptRealSegmentDmr(realMultiSeg);
+			// Create extent dmr and register necessary services
+			final VDomainModelReference ex = configureSegmentExtentDmr(selectionExtent, realMultiSeg);
+			tableControl.setDomainModelReference(ex);
+		} else if (tableControl.getDomainModelReference() instanceof VTableDomainModelReference) {
+			final VFeaturePathDomainModelReference extentDMR = createLegacyExtentDmr(selectionExtent);
+			final VTableDomainModelReference dmr = (VTableDomainModelReference) tableControl.getDomainModelReference();
+			realDMR = dmr.getDomainModelReference();
+			dmr.setDomainModelReference(extentDMR);
+			registerDMRConverter(selectionExtent, extentDMR);
+		} else {
+			throw new IllegalArgumentException("table model has no table DMR"); //$NON-NLS-1$
+		}
+
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(tableView, owner);
+
+		final PrivateTableRenderer renderer = new PrivateTableRenderer(context, tableControl);
+
+		final Control control = renderer.render(composite);
+
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).minSize(0, 150).span(2, 1)
+			.applyTo(control);
+
+		final TableViewer result = renderer.getTableViewer();
+
+		return result;
+	}
+
+	private VFeaturePathDomainModelReference createLegacyExtentDmr(final EObject selectionExtent) {
+		final VFeaturePathDomainModelReference extentDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		extentDMR.setDomainModelEFeature(selectionExtent.eClass().getEReferences().get(0));
+		return extentDMR;
+	}
+
+	/**
+	 * Replaces the original DMRs multi segment with a feature segment to allow databinding for single references. A
+	 * feature segment is sufficient as the dmr only needs to be resolved for labels.
+	 *
+	 * @param realMultiSeg The multi segment of the original table dmr in the view model
+	 */
+	private void adaptRealSegmentDmr(final VMultiDomainModelReferenceSegment realMultiSeg) {
+		realDMR = tableControl.getDomainModelReference();
+		// replace multi with feature segment to avoid failed databinding for single references.
+		realDMR.getSegments().remove(realMultiSeg);
+		final VFeatureDomainModelReferenceSegment realReplace = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		realReplace.setDomainModelFeature(realMultiSeg.getDomainModelFeature());
+		realDMR.getSegments().add(realReplace);
+	}
+
+	/**
+	 * Create segment based extent dmr whose multi segment contains a copy of all real child dmrs. Also register
+	 * necessary services.
+	 *
+	 * @param selectionExtent The selection extent {@link EObject}
+	 * @param realMultiSegment The multi segment of the original table dmr in the view model
+	 * @return The extent segment DMR
+	 */
+	private VDomainModelReference configureSegmentExtentDmr(EObject selectionExtent,
+		VMultiDomainModelReferenceSegment realMultiSegment) {
+		final VDomainModelReference extentDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		final VMultiDomainModelReferenceSegment extentSegment = VMultisegmentFactory.eINSTANCE
+			.createMultiDomainModelReferenceSegment();
+		final EReference extentRef = selectionExtent.eClass().getEReferences().get(0);
+		extentSegment.setDomainModelFeature(extentRef.getName());
+		// This moves the child DMRs but we do not need them in the "real" DMR. We need the original ones so they
+		// are still found by enablement configurations used to name the columns
+		extentSegment.getChildDomainModelReferences().addAll(realMultiSegment.getChildDomainModelReferences());
+		extentDmr.getSegments().add(extentSegment);
+
+		// Configure services for the extent segment
+		registerSegmentServices(selectionExtent, extentSegment, extentRef);
+
+		return extentDmr;
+	}
+
+	/**
+	 * Create a column label provider that delegates to another label provider.
+	 *
+	 * @param delegate the label provider delegate
+	 * @return the column label provider
+	 */
+	protected CellLabelProvider createColumnLabelProvider(ILabelProvider delegate) {
+		return new ColumnLabelProvider() {
+			@Override
+			public String getText(Object element) {
+				return delegate.getText(element);
+			}
+
+			@Override
+			public Image getImage(Object element) {
+				return delegate.getImage(element);
+			}
+		};
+	}
+
+	private EObject createSelectionExtent() {
+		final EObject result = SELECTION_PACKAGE.getEFactoryInstance().create(SELECTION_CLASS);
+		@SuppressWarnings("unchecked")
+		final EList<EObject> selectionExtent = (EList<EObject>) result.eGet(SELECTION_EXTENT);
+		selectionExtent.addAll(extent);
+
+		return result;
+	}
+
+	private void registerDMRConverter(EObject source, VFeaturePathDomainModelReference dmr) {
+		final DelegatingDomainModelReferenceConverter delegator = new DelegatingDomainModelReferenceConverter(dmr,
+			__ -> source);
+		final BundleContext ctx = FrameworkUtil.getBundle(TableSelectionCompositeImpl.class).getBundleContext();
+
+		final Hashtable<String, Object> properties = new Hashtable<>();
+		properties.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+		dmrConverter = ctx.registerService(DomainModelReferenceConverterEMF.class, delegator, properties);
+	}
+
+	private void registerSegmentServices(EObject source, VFeatureDomainModelReferenceSegment segment,
+		EStructuralFeature segmentFeature) {
+
+		final DelegatingDmrSegmentConverter delegator = new DelegatingDmrSegmentConverter(segment, segmentFeature,
+			__ -> source);
+		final DummyDomainExpander expander = new DummyDomainExpander(segment);
+		final BundleContext ctx = FrameworkUtil.getBundle(TableSelectionCompositeImpl.class).getBundleContext();
+
+		final Hashtable<String, Object> properties = new Hashtable<>();
+		properties.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+		segmentConverter = ctx.registerService(DomainModelReferenceSegmentConverterEMF.class, delegator, properties);
+		segmentExpander = ctx.registerService(EMFFormsDMRSegmentExpander.class, expander, properties);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Private subclass of the table renderer to access some protected API and customize
+	 * its presentation for our use case.
+	 */
+	private final class PrivateTableRenderer extends TableControlSWTRenderer {
+
+		private final EMFFormsLocalizationService l10n;
+		private final EMFFormsLabelProvider labels;
+
+		/**
+		 * Initializes me.
+		 */
+		PrivateTableRenderer(ViewModelContext context, VTableControl vTable) {
+			super(vTable, 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),
+				context.getService(EMFFormsLocalizationService.class));
+
+			l10n = context.getService(EMFFormsLocalizationService.class);
+			labels = context.getService(EMFFormsLabelProvider.class);
+		}
+
+		@Override
+		protected TableViewer getTableViewer() {
+			return (TableViewer) super.getTableViewer();
+		}
+
+		@Override
+		protected TableViewerCompositeBuilder createTableViewerCompositeBuilder() {
+			return new MinimalCompositeBuilder();
+		}
+
+		@Override
+		protected int addAdditionalColumns(TableViewerSWTBuilder tableViewerSWTBuilder) {
+			// Inject the selection column
+			final ColumnConfigurationBuilder columnBuilder = ColumnConfigurationBuilder.usingDefaults()
+				.labelProvider(createColumnLabelProvider(getLabelProvider()))
+				.minWidth(50).weight(100).resizable(true)
+				.text(getSelectionColumnTitle())
+				.tooltip(getSelectionColumnTooltip());
+			tableViewerSWTBuilder.addColumn(columnBuilder.build());
+
+			return 1;
+		}
+
+		private IObservableValue<String> getSelectionColumnTitle() {
+			final String result = l10n.getString(TableSelectionCompositeImpl.class, "selectionColumn"); //$NON-NLS-1$
+			return Observables.constantObservableValue(Realm.getDefault(), result, String.class);
+		}
+
+		private IObservableValue<String> getSelectionColumnTooltip() {
+			final IObservableValue<String> featureName = getRealDMRDisplayName();
+			return ComputedValue
+				.create(() -> NLS.bind(l10n.getString(TableSelectionCompositeImpl.class, "selectionTooltip"), //$NON-NLS-1$
+					featureName.getValue()));
+		}
+
+		private IObservableValue<String> getRealDMRDisplayName() {
+			IObservableValue<String> result;
+			try {
+				result = labels.getDisplayName(realDMR, owner);
+			} catch (final NoLabelFoundException e) {
+				result = Observables.constantObservableValue(Realm.getDefault(),
+					l10n.getString(TableSelectionCompositeImpl.class, "reference"), //$NON-NLS-1$
+					String.class);
+			}
+			return result;
+		}
+
+		Control render(Composite parent) {
+			Control result = null;
+
+			init();
+
+			final SWTGridDescription grid = getGridDescription(
+				GridDescriptionFactory.INSTANCE.createEmptyGridDescription());
+			if (grid.getGrid().isEmpty()) {
+				getReportService().report(
+					new InvalidGridDescriptionReport("grid has no cells")); //$NON-NLS-1$
+			}
+
+			try {
+				result = renderTableControl(grid.getGrid().get(0), parent);
+				finalizeRendering(parent);
+			} catch (final NoRendererFoundException | NoPropertyDescriptorFoundExeption e) {
+				getReportService().report(new RenderingFailedReport(e));
+			}
+
+			return result;
+		}
+
+		//
+		// Nested types
+		//
+
+		/**
+		 * A composite builder that leaves the top composite empty.
+		 */
+		private final class MinimalCompositeBuilder extends TableControlSWTRendererCompositeBuilder {
+
+			@Override
+			protected Label createTitleLabel(Composite parentComposite, Color background) {
+				return null;
+			}
+
+			@Override
+			protected Label createValidationLabel(Composite topComposite) {
+				return null;
+			}
+
+			@Override
+			protected Composite createButtonComposite(Composite parentComposite) {
+				return null;
+			}
+
+			@Override
+			public Optional<Label> getTitleLabel() {
+				return Optional.empty();
+			}
+
+			@Override
+			public Optional<List<Control>> getValidationControls() {
+				return Optional.empty();
+			}
+
+			@Override
+			public Optional<Composite> getButtonComposite() {
+				return Optional.empty();
+			}
+
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.table/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.table/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.table/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.table/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 91a0d43..8c69ae4 100644
--- a/bundles/org.eclipse.emfforms.swt.table/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.table/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table
 Bundle-SymbolicName: org.eclipse.emfforms.swt.table
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.table;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.swt.table.action;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.swt.table.messages;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.swt.table.util;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.table;version="1.21.0",
- org.eclipse.emfforms.spi.swt.table.action;version="1.21.0",
- org.eclipse.emfforms.spi.swt.table.util;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.table;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.table.action;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.table.messages;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.table.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.table;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.table.action;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.table.util;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emfforms.swt.table/pom.xml b/bundles/org.eclipse.emfforms.swt.table/pom.xml
index a3eeb05..7d8db0c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/AbstractTableViewerComposite.java b/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/AbstractTableViewerComposite.java
index 9cfef48..e75ad15 100644
--- a/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/AbstractTableViewerComposite.java
+++ b/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/AbstractTableViewerComposite.java
@@ -380,4 +380,11 @@
 	 */
 	public abstract void setComparator(TableViewerComparator comparator, List<Integer> sortableColumns);
 
+	/**
+	 * Allow to set an initial sort.
+	 *
+	 * @param column The column to sort
+	 * @since 1.22
+	 */
+	public abstract void setCompareColumn(int column);
 }
diff --git a/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/TableViewerComposite.java b/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/TableViewerComposite.java
index 84b6dad..80d0613 100644
--- a/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/TableViewerComposite.java
+++ b/bundles/org.eclipse.emfforms.swt.table/src/org/eclipse/emfforms/spi/swt/table/TableViewerComposite.java
@@ -39,6 +39,7 @@
 public class TableViewerComposite extends AbstractTableViewerComposite<TableViewer> {
 
 	private TableViewer tableViewer;
+	private TableViewerComparator comparator;
 
 	/**
 	 * Default constructor.
@@ -138,6 +139,7 @@
 
 	@Override
 	public void setComparator(final TableViewerComparator comparator, List<Integer> sortableColumns) {
+		this.comparator = comparator;
 		for (int i = 0; i < getTableViewer().getTable().getColumns().length; i++) {
 			if (!sortableColumns.contains(i)) {
 				continue;
@@ -147,11 +149,7 @@
 			final SelectionAdapter selectionAdapter = new SelectionAdapter() {
 				@Override
 				public void widgetSelected(SelectionEvent e) {
-					comparator.setColumn(j);
-					final int dir = comparator.getDirection();
-					tableViewer.getTable().setSortDirection(dir);
-					tableViewer.getTable().setSortColumn(tableColumn);
-					tableViewer.refresh();
+					setCompareColumn(j);
 				}
 			};
 			tableColumn.addSelectionListener(selectionAdapter);
@@ -166,4 +164,13 @@
 		super.dispose();
 	}
 
+	@Override
+	public void setCompareColumn(int column) {
+		final TableColumn tableColumn = getTableViewer().getTable().getColumns()[column];
+		comparator.setColumn(column);
+		tableViewer.getTable().setSortDirection(comparator.getDirection());
+		tableViewer.getTable().setSortColumn(tableColumn);
+		tableViewer.refresh();
+	}
+
 }
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7e374b36..75cdbf7 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,15 +2,15 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.treemasterdetail.decorator.validation.ecp;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.treemasterdetail.decorator.validation.ecp;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.swt.treemasterdetail.decorator.validation.ecp;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.treemasterdetail.decorator.validation.ecp;version="1.22.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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",
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 e220347..8add1ac 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters
index 664ad22..7875ebf 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters
@@ -7,6 +7,12 @@
                 <message_argument value="1.13.0"/>
             </message_arguments>
         </filter>
+        <filter comment="API breakage report is not real" id="923795461">
+            <message_arguments>
+                <message_argument value="1.22.0"/>
+                <message_argument value="1.21.0"/>
+            </message_arguments>
+        </filter>
         <filter comment="SPI Change 1.8.0" id="923795461">
             <message_arguments>
                 <message_argument value="1.8.0"/>
@@ -52,6 +58,15 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailCache.java" type="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache">
+        <filter comment="Bogus error: class initializers are in no way API" id="403984517">
+            <message_arguments>
+                <message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewCache"/>
+                <message_argument value="&lt;clinit&gt;()"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailComposite.java" type="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailComposite">
         <filter comment="SPI Change" id="338792546">
             <message_arguments>
@@ -76,6 +91,13 @@
                 <message_argument value="getLabelDecorator(TreeViewer)"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change 1.22.0: Added TreeReadOnlyProvider to TreeViewerCustomization" id="403984517">
+            <message_arguments>
+                <message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailSWTCustomization"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeReadOnlyProvider"/>
+                <message_argument value="isReadOnly()"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeViewerCustomization.java" type="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeViewerCustomization">
         <filter comment="SPI Change 1.9.0" id="403984517">
@@ -92,6 +114,13 @@
                 <message_argument value="getLabelDecorator(TreeViewer)"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change 1.22.0: Added TreeReadOnlyProvider to TreeViewerCustomization" id="403984517">
+            <message_arguments>
+                <message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeViewerCustomization"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.TreeReadOnlyProvider"/>
+                <message_argument value="isReadOnly()"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emfforms/spi/swt/treemasterdetail/actions/MasterDetailAction.java" type="org.eclipse.emfforms.spi.swt.treemasterdetail.actions.MasterDetailAction">
         <filter comment="SPI Change 1.10.0" id="336695337">
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.jdt.core.prefs
index f41b859..557976e 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.jdt.core.prefs
@@ -82,7 +82,7 @@
 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.nonExternalizedStringLiteral=warning
 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
 org.eclipse.jdt.core.compiler.problem.nullReference=warning
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b1cc541..e41728d 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Treemasterdetail SWT Util
 Bundle-SymbolicName: org.eclipse.emfforms.swt.treemasterdetail;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.edit.ui.action.emfforms;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.swt.treemasterdetail;version="1.21.0";x-friends:="org.eclipse.emfforms.editor.ecore",
- org.eclipse.emfforms.internal.swt.treemasterdetail.defaultprovider;version="1.21.0";x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor",
- org.eclipse.emfforms.spi.swt.treemasterdetail;version="1.21.0",
- org.eclipse.emfforms.spi.swt.treemasterdetail.actions;version="1.21.0",
- org.eclipse.emfforms.spi.swt.treemasterdetail.actions.delegating;version="1.21.0",
- org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic;version="1.21.0",
- org.eclipse.emfforms.spi.swt.treemasterdetail.util;version="1.21.0"
+Export-Package: org.eclipse.emf.edit.ui.action.emfforms;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.treemasterdetail;version="1.22.0";x-friends:="org.eclipse.emfforms.editor.ecore",
+ org.eclipse.emfforms.internal.swt.treemasterdetail.defaultprovider;version="1.22.0";x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor",
+ org.eclipse.emfforms.spi.swt.treemasterdetail;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.actions;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.actions.delegating;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.equinox.registry;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.localization;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.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",
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.swt.treemasterdetail/OSGI-INF/l10n/bundle.properties
index b229560..f593c54 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/OSGI-INF/l10n/bundle.properties
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/OSGI-INF/l10n/bundle.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2013 EclipseSource.
+# Copyright (c) 2013-2019 EclipseSource and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License 2.0
 # which accompanies this distribution, and is available at
@@ -9,8 +9,11 @@
 #
 # Contributors:
 #    EclipseSource - initial API and implementation
+#    Christian W. Damus - bug 527686
 ################################################################################
 
 
 #reference messages
-PasteInParent=Paste in parent 
\ No newline at end of file
+PasteInParent=Paste in parent 
+selectNodeMessage=Select a node in the tree to edit it
+loadingMessage=Loading ...
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/pom.xml b/bundles/org.eclipse.emfforms.swt.treemasterdetail/pom.xml
index 3d51498..21d4be6 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/BaseLabelProviderWrapper.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/BaseLabelProviderWrapper.java
index f628cf2..c9fa0d0 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/BaseLabelProviderWrapper.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/BaseLabelProviderWrapper.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.internal.swt.treemasterdetail;
 
@@ -58,7 +59,7 @@
 	@Override
 	public String getText(Object element) {
 		/* not supported by IBaseLabelProvider */
-		return "";
+		return ""; //$NON-NLS-1$
 	}
 
 	@Override
@@ -66,4 +67,4 @@
 		/* not supported by IBaseLabelProvider */
 		return null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/DefaultTreeViewerCustomization.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/DefaultTreeViewerCustomization.java
index a65ef8c..8d67f7d 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/DefaultTreeViewerCustomization.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/DefaultTreeViewerCustomization.java
@@ -69,6 +69,7 @@
 	private ContentProviderProvider contentProvider;
 	private ComposedAdapterFactory adapterFactory;
 	private AdapterFactoryContentProvider adapterFactoryContentProvider;
+	private boolean readOnly;
 
 	/**
 	 * Default constructor.
@@ -133,6 +134,9 @@
 
 	@Override
 	public boolean hasDND() {
+		if (readOnly) {
+			return false;
+		}
 		return dnd.hasDND();
 	}
 
@@ -193,6 +197,9 @@
 
 	@Override
 	public Menu getMenu(TreeViewer treeViewer, EditingDomain editingDomain) {
+		if (readOnly) {
+			return null;
+		}
 		return menu.getMenu(treeViewer, editingDomain);
 	}
 
@@ -320,6 +327,24 @@
 		this.filters = filters;
 	}
 
+	@Override
+	public boolean isReadOnly() {
+		return readOnly;
+	}
+
+	/**
+	 * Allows to set the tree as read-only. Default is false. Setting the tree as read-only has two consequences:
+	 * <ol>
+	 * <li>The tree's context menu is disabled
+	 * <li>Drag and drop is disabled</li>
+	 * </ol>
+	 *
+	 * @param readOnly <code>true</code> to set as read-only
+	 */
+	public void setReadOnly(boolean readOnly) {
+		this.readOnly = readOnly;
+	}
+
 	/**
 	 * Provides no decorator.
 	 *
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/DefaultTreeMasterDetailCache.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/DefaultTreeMasterDetailCache.java
index d682393..4a043ef 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/DefaultTreeMasterDetailCache.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/DefaultTreeMasterDetailCache.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 2.0
@@ -10,23 +10,28 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bugs 527686, 549565
  ******************************************************************************/
 package org.eclipse.emfforms.spi.swt.treemasterdetail;
 
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.BasicDetailViewCache;
 
 /**
  * A default implementation of the TreeMasterDetailCache which uses the EClass as the key.
  *
  * @author Eugen Neufeld
  * @since 1.9
- *
+ * @deprecated Since 1.22, use the {@link BasicDetailViewCache} API, instead.
  */
+@Deprecated
 public class DefaultTreeMasterDetailCache implements TreeMasterDetailCache {
 
 	private final Map<EClass, ECPSWTView> cache;
@@ -59,34 +64,26 @@
 		};
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache#isChached(org.eclipse.emf.ecore.EObject)
-	 */
 	@Override
 	public boolean isChached(EObject selection) {
 		return cache.containsKey(selection.eClass());
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache#getCachedView(org.eclipse.emf.ecore.EObject)
-	 */
 	@Override
 	public ECPSWTView getCachedView(EObject selection) {
 		return cache.get(selection.eClass());
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache#cache(org.eclipse.emf.ecp.ui.view.swt.ECPSWTView)
-	 */
 	@Override
 	public void cache(ECPSWTView ecpView) {
 		cache.put(ecpView.getViewModelContext().getDomainModel().eClass(), ecpView);
 	}
 
+	@Override
+	public void clear() {
+		final List<ECPSWTView> records = new ArrayList<>(cache.values());
+		cache.clear();
+		records.forEach(ECPSWTView::dispose);
+	}
+
 }
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailCache.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailCache.java
index 8ec1274..3443577 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailCache.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailCache.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 2.0
@@ -10,43 +10,64 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.spi.swt.treemasterdetail;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.BasicDetailViewCache;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewCache;
 
 /**
  * A cache for the TreeMasterDetail that allows to cache rendered ECPSWTViews and reuse them when switching between
  * elements in the tree.
- * 
+ *
  * @author Eugen Neufeld
  * @since 1.9
  *
+ * @deprecated As of 1.22, use the {@link DetailViewCache} API, instead, or extend the {@link BasicDetailViewCache}
+ *             class
  */
-public interface TreeMasterDetailCache {
+@Deprecated
+public interface TreeMasterDetailCache extends DetailViewCache {
 
 	/**
 	 * Checks whether there is already a cached view available.
-	 * 
+	 *
 	 * @param selection The new selection of the tree
 	 * @return true if there is a cached view for the provided selection, false otherwise
 	 */
 	boolean isChached(EObject selection);
 
+	@Override
+	default boolean isCached(EObject selection) {
+		return isChached(selection);
+	}
+
 	/**
 	 * Returns the previously cached view for the provided selection.
-	 * 
+	 *
 	 * @param selection The new selection of the tree
 	 * @return The cached view
 	 */
+	@Override
 	ECPSWTView getCachedView(EObject selection);
 
 	/**
 	 * Caches the provided {@link ECPSWTView} to allow it to be reused later.
-	 * 
+	 *
 	 * @param ecpView The {@link ECPSWTView} to cache.
 	 */
 	void cache(ECPSWTView ecpView);
 
+	@Override
+	default boolean cacheView(ECPSWTView ecpView) {
+		// Don't attempt to cache a view already disposed
+		if (ecpView != null && !ecpView.getSWTControl().isDisposed()) {
+			cache(ecpView);
+		}
+
+		return ecpView != null && !ecpView.getSWTControl().isDisposed();
+	}
 }
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailComposite.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailComposite.java
index e7f2c88..1509826 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailComposite.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailComposite.java
@@ -11,16 +11,18 @@
  * Contributors:
  * Clemens Elflein - initial API and implementation
  * Johannes Faltermeier - initial API and implementation
- * Christian W. Damus - bugs 533568, 545460
+ * Christian W. Damus - bugs 533568, 545460, 527686, 548592
  ******************************************************************************/
 package org.eclipse.emfforms.spi.swt.treemasterdetail;
 
+import static org.eclipse.emfforms.spi.localization.LocalizationServiceHelper.getString;
+
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
 
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.internal.databinding.observable.DelayedObservableValue;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.command.CompoundCommand;
@@ -28,18 +30,18 @@
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
 import org.eclipse.emf.ecp.view.spi.common.callback.ViewModelPropertiesUpdateCallback;
 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.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.ViewProviderHelper;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewCache;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewManager;
 import org.eclipse.emf.ecp.view.spi.swt.selection.IMasterDetailSelectionProvider;
 import org.eclipse.emf.ecp.view.spi.swt.selection.MasterDetailFocusAdapter;
 import org.eclipse.emf.ecp.view.spi.swt.selection.MasterDetailSelectionProvider;
@@ -50,18 +52,17 @@
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.DetailPanelRenderingFinishedCallback;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.RootObject;
-import org.eclipse.jface.databinding.viewers.IViewerObservableValue;
 import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.FontDescriptor;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
@@ -70,22 +71,15 @@
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Shell;
 
 /**
  * The Class MasterDetailRenderer.
@@ -122,33 +116,15 @@
 	/** The detail scrollable composite. */
 	private Composite detailComposite;
 
-	/** The detail panel. */
-	private Composite detailPanel;
+	/** Manager of the currently rendered ECPSWTView with caching. */
+	private DetailViewManager detailManager;
 
-	/** The currently rendered ECPSWTView. */
-	private ECPSWTView renderedView;
-	private final Shell limbo;
+	private final String selectNodeMessage = getString(getClass(), "selectNodeMessage"); //$NON-NLS-1$
+	private final String loadingMessage = getString(getClass(), "loadingMessage"); //$NON-NLS-1$
 
 	private Object lastRenderedObject;
 
 	private final TreeMasterDetailSWTCustomization customization;
-	private TreeMasterDetailCache cache = new TreeMasterDetailCache() {
-
-		@Override
-		public boolean isChached(EObject selection) {
-			return false;
-		}
-
-		@Override
-		public ECPSWTView getCachedView(EObject selection) {
-			return null;
-		}
-
-		@Override
-		public void cache(ECPSWTView ecpView) {
-			ecpView.dispose();
-		}
-	};
 
 	/** the delay between a selection change and the start of the rendering. */
 	private final int renderDelay;
@@ -156,18 +132,6 @@
 	private ViewModelPropertiesUpdateCallback viewModelPropertiesUpdateCallback;
 	private final Set<DetailPanelRenderingFinishedCallback> detailPanelRenderingFinishedCallbacks = new LinkedHashSet<DetailPanelRenderingFinishedCallback>();
 
-	/** The CreateElementCallback to allow modifications to the newly created element. */
-
-	/**
-	 * The context. It is used in the same way as in TreeMasterDetail.
-	 * It allows custom viewmodels for the detail panel
-	 */
-	private static VViewModelProperties context = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
-
-	static {
-		context.addNonInheritableProperty("detail", true);
-	}
-
 	/**
 	 * Default constructor.
 	 *
@@ -190,11 +154,7 @@
 		}
 		this.renderDelay = renderDelay;
 		this.customization = customization;
-		limbo = new Shell(Display.getCurrent(), SWT.NONE);
-		// Place the limbo shell 'off screen'
-		limbo.setLocation(0, 10000);
-		limbo.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
-		limbo.setBackgroundMode(SWT.INHERIT_FORCE);
+
 		renderControl(customization);
 
 		parent.addDisposeListener(new DisposeListener() {
@@ -219,33 +179,33 @@
 		GridLayoutFactory.fillDefaults().numColumns(1).applyTo(treeComposite);
 		treeViewer = TreeViewerSWTFactory.createTreeViewer(treeComposite, input, customization);
 		selectionProvider = new MasterDetailSelectionProvider(treeViewer);
-		treeViewer.getControl().addFocusListener(new MasterDetailFocusAdapter(selectionProvider, () -> detailPanel));
+		treeViewer.getControl().addFocusListener(
+			new MasterDetailFocusAdapter(selectionProvider, () -> detailManager.getDetailContainer()));
 
 		// Create detail composite
 		detailComposite = buildBehaviour.createDetailComposite(this);
 		addDetailCompositeLayoutData(detailComposite, verticalSash);
+		Composite detailParent = detailComposite;
+		if (detailParent instanceof ScrolledComposite) {
+			final Composite detailPanel = new Composite(detailParent, SWT.BORDER);
+			((ScrolledComposite) detailParent).setContent(detailPanel);
+			detailParent = detailPanel;
+		}
+		detailManager = new DetailViewManager(detailParent);
+		detailManager.setNoDetailMessage(selectNodeMessage);
+		detailManager.layoutDetailParent(detailParent);
 
-		/* enable delayed update mechanism */
-		final IViewerObservableValue treeViewerSelectionObservable = ViewersObservables
+		/* enable optional delayed update mechanism */
+		IObservableValue<?> treeViewerSelectionObservable = ViewersObservables
 			.observeSingleSelection(treeViewer);
-		@SuppressWarnings("unchecked")
-		final DelayedObservableValue<?> delayedObservableValue = new DelayedObservableValue<>(renderDelay,
-			treeViewerSelectionObservable);
-		delayedObservableValue.addChangeListener(new IChangeListener() {
+		if (renderDelay > 0) {
+			treeViewerSelectionObservable = new DelayedObservableValue<>(renderDelay,
+				treeViewerSelectionObservable);
+		}
+		treeViewerSelectionObservable.addChangeListener(__ -> doUpdateDetailPanel(false));
 
-			@Override
-			public void handleChange(ChangeEvent event) {
-				doUpdateDetailPanel(false);
-			}
-		});
-
-		treeComposite.addDisposeListener(new DisposeListener() {
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				treeViewerSelectionObservable.dispose();
-				delayedObservableValue.dispose();
-			}
-		});
+		final IObservableValue<?> observableToDispose = treeViewerSelectionObservable;
+		treeComposite.addDisposeListener(__ -> observableToDispose.dispose());
 
 		/* add key listener to switch focus on enter */
 		treeViewer.getTree().addKeyListener(new KeyAdapter() {
@@ -274,10 +234,7 @@
 	}
 
 	private void setFocusToDetail() {
-		if (renderedView == null || renderedView.getSWTControl().isDisposed()) {
-			return;
-		}
-		renderedView.getSWTControl().setFocus();
+		detailManager.setFocus();
 	}
 
 	private void addDetailCompositeLayoutData(Composite detailComposite, Sash verticalSash) {
@@ -340,51 +297,40 @@
 		// TODO create detail panel at the right location
 		final IStructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
 		final Object selectedObject = getSelectedObject(selection);
+		detailManager.cacheCurrentDetail();
 
 		boolean asyncRendering = false;
 		if (selectedObject instanceof EObject) {
 			lastRenderedObject = selectedObject;
 			final EObject eObject = EObject.class.cast(selectedObject);
-			if (renderedView != null && !renderedView.getSWTControl().isDisposed()) {
-				renderedView.getSWTControl().setParent(limbo);
-				cache.cache(renderedView);
-			}
-			createDetailPanel();
-			if (cache.isChached(eObject)) {
-				renderedView = cache.getCachedView(eObject);
-				renderedView.getSWTControl().setParent(detailPanel);
-				/*
-				 * layout detail, since the size of the window might have changed (e.g. made smaller). layout is
-				 * required to make sure that scrollbars, etc. are updated
-				 */
-				detailPanel.layout();
-				renderedView.getViewModelContext().changeDomainModel(eObject);
+
+			if (detailManager.isCached(eObject)) {
+				// It's ready to present (no async needed)
+				detailManager.activate(eObject);
+
 				updateScrolledComposite();
 			} else {
 				if (viewModelPropertiesUpdateCallback != null) {
-					viewModelPropertiesUpdateCallback.updateViewModelProperties(context);
+					viewModelPropertiesUpdateCallback.updateViewModelProperties(detailManager.getDetailProperties());
 				}
 				// Check, if the selected object would be rendered using a TreeMasterDetail. If so, render the provided
 				// detail view.
-				final VView view = ViewProviderHelper.getView((EObject) selectedObject, context);
+				final VView view = detailManager.getDetailView(eObject);
 				if (view.getChildren().size() > 0 && view.getChildren().get(0) instanceof VTreeMasterDetail) {
 					// Yes, we need to render this node differently
-					final VTreeMasterDetail vTreeMasterDetail = (VTreeMasterDetail) view.getChildren().get(0);
-					try {
-						renderedView = ECPSWTViewRenderer.INSTANCE.render(detailPanel, (EObject) selectedObject,
-							vTreeMasterDetail.getDetailView());
-						detailPanel.layout(true, true);
-					} catch (final ECPRendererException e) {
-					}
-
+					final VView treeDetailView = VTreeMasterDetail.class.cast(view.getChildren().get(0))
+						.getDetailView();
+					// Even if the TMD composite is not configured as read-only honor the effective read-only
+					// configuration of the loaded detail view
+					treeDetailView.setReadonly(treeDetailView.isEffectivelyReadonly() || customization.isReadOnly());
+					final ViewModelContext context = ViewModelContextFactory.INSTANCE.createViewModelContext(
+						treeDetailView, eObject);
+					detailManager.render(context, ECPSWTViewRenderer.INSTANCE::render);
 				} else {
 					// No, everything is fine
-					final Label label = new Label(detailPanel, SWT.NONE);
-					label.setText("loading...");
-					GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, true).applyTo(label);
-					detailPanel.layout(true, true);
+					detailManager.setNoDetailMessage(loadingMessage);
 					asyncRendering = true;
-					Display.getDefault().asyncExec(new UpdateDetailRunnable(setFocusToDetail, eObject, label));
+					Display.getDefault().asyncExec(new UpdateDetailRunnable(setFocusToDetail, eObject));
 				}
 				// After rendering the Forms, compute the size of the form. So the scroll container knows when to scroll
 				updateScrolledComposite();
@@ -441,65 +387,20 @@
 	private void updateScrolledComposite() {
 		if (ScrolledComposite.class.isInstance(detailComposite)) {
 			ScrolledComposite.class.cast(detailComposite)
-				.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+				.setMinSize(detailManager.getDetailContainer().computeSize(SWT.DEFAULT, SWT.DEFAULT));
 		}
 	}
 
 	private void renderEmptyDetailPanel() {
 		lastRenderedObject = null;
-		if (renderedView != null && !renderedView.getSWTControl().isDisposed()) {
-			renderedView.getSWTControl().setParent(limbo);
-			cache.cache(renderedView);
-			/* set renderedView to null so that it is not offered to the cache further times */
-			renderedView = null;
-		}
-		createDetailPanel();
-		final Label hint = new Label(detailPanel, SWT.CENTER);
-		final FontDescriptor boldDescriptor = FontDescriptor.createFrom(hint.getFont()).setHeight(18)
-			.setStyle(SWT.BOLD);
-		final Font boldFont = boldDescriptor.createFont(hint.getDisplay());
-		hint.setFont(boldFont);
-		hint.setForeground(new Color(hint.getDisplay(), 190, 190, 190));
-		hint.setText("Select a node in the tree to edit it");
-		final GridData hintLayoutData = new GridData();
-		hintLayoutData.grabExcessVerticalSpace = true;
-		hintLayoutData.grabExcessHorizontalSpace = true;
-		hintLayoutData.horizontalAlignment = SWT.CENTER;
-		hintLayoutData.verticalAlignment = SWT.CENTER;
-		hint.setLayoutData(hintLayoutData);
-
-		detailPanel.pack();
-		detailPanel.layout(true, true);
+		detailManager.cacheCurrentDetail();
 
 		updateScrolledComposite();
 	}
 
-	/**
-	 * Creates the detail panel.
-	 *
-	 * @return the control
-	 */
-	private Control createDetailPanel() {
-		// Dispose old panels to avoid memory leaks
-		if (detailPanel != null) {
-			detailPanel.dispose();
-		}
-
-		detailPanel = new Composite(detailComposite, SWT.BORDER);
-		detailPanel.setLayout(new GridLayout());
-		detailPanel.setBackground(new Color(Display.getDefault(), new RGB(255, 255, 255)));
-		detailPanel.setBackgroundMode(SWT.INHERIT_FORCE);
-		if (ScrolledComposite.class.isInstance(detailComposite)) {
-			ScrolledComposite.class.cast(detailComposite).setContent(detailPanel);
-		}
-
-		detailComposite.layout(true, true);
-		return detailPanel;
-	}
-
 	@Override
 	public void dispose() {
-		limbo.dispose();
+		detailManager.dispose();
 		customization.dispose();
 		super.dispose();
 	}
@@ -531,7 +432,9 @@
 	 *
 	 * @return the tree viewer (which is a selection provider)
 	 *
-	 * @deprecated Use the {@link #getMasterDetailSelectionProvider() master-detail selection provider}, instead}
+	 * @deprecated Use the {@link #getMasterDetailSelectionProvider() master-detail selection provider}, instead},
+	 *             or {@link #refresh()} to force a refresh of the tree, or {@link #selectAndReveal(Object)}
+	 *             to select and reveal some object in my tree
 	 * @see #getMasterDetailSelectionProvider()
 	 */
 	@Deprecated
@@ -551,6 +454,115 @@
 	}
 
 	/**
+	 * Request a refresh of my tree.
+	 *
+	 * @since 1.22
+	 */
+	public void refresh() {
+		if (treeViewer != null) {
+			treeViewer.refresh();
+		}
+	}
+
+	/**
+	 * Select and reveal a {@code selection} in my tree. If the argument is an {@link UniqueSetting},
+	 * then the {@linkplain UniqueSetting#getEObject() owner} of the setting will be revealed and the
+	 * control that edits the {@linkplain UniqueSetting#getEStructuralFeature() setting} will be
+	 * revealed and focused (if possible) in the object's detail view.
+	 *
+	 * @param selection the objet to select and reveal
+	 * @return {@code true} if the {@code selection} was revealed; {@code false}, otherwise, including
+	 *         the case where the nearest parent object up the tree was revealed instead
+	 * @since 1.22
+	 */
+	public boolean selectAndReveal(final Object selection) {
+		boolean result = false;
+
+		Object toReveal = selection;
+		final EStructuralFeature feature;
+
+		if (selection instanceof UniqueSetting) {
+			final UniqueSetting setting = (UniqueSetting) selection;
+			toReveal = setting.getEObject();
+			feature = setting.getEStructuralFeature();
+		} else if (selection instanceof EStructuralFeature.Setting) {
+			final EStructuralFeature.Setting setting = (EStructuralFeature.Setting) selection;
+			toReveal = setting.getEObject();
+			feature = setting.getEStructuralFeature();
+		} else {
+			feature = null;
+		}
+
+		if (feature != null) {
+			final CompletableFuture<ECPSWTView> renderedDetail = new CompletableFuture<>();
+			final DetailPanelRenderingFinishedCallback detailReady = __ -> renderedDetail
+				.complete(detailManager.getCurrentDetail());
+			registerDetailPanelRenderingFinishedCallback(detailReady);
+
+			final EObject owner = (EObject) toReveal;
+			result = selectAndRevealInTree(owner);
+			if (result) {
+				renderedDetail.whenComplete((view, e) -> {
+					unregisterDetailPanelRenderingFinishedCallback(detailReady);
+					revealInDetail(view, owner, feature);
+				});
+			} else {
+				// Won't need the call-back so remove it now
+				renderedDetail.cancel(false);
+				unregisterDetailPanelRenderingFinishedCallback(detailReady);
+			}
+
+			// Do we already have the detail?
+			final ECPSWTView currentDetail = detailManager.getCurrentDetail();
+			if (currentDetail != null && currentDetail.getViewModelContext().getDomainModel() == owner) {
+				// There won't be an asynchronous rendering to wait for
+				renderedDetail.complete(currentDetail);
+			}
+		} else {
+			result = selectAndRevealInTree(toReveal);
+		}
+
+		return result;
+	}
+
+	private boolean selectAndRevealInTree(final Object selection) {
+		if (treeViewer == null) {
+			return false;
+		}
+
+		boolean result = false;
+
+		// Try to reveal the 'selection' in the tree. If it isn't in the
+		// tree, then search up the content provider to find the nearest
+		// object that can be revealed and select that, or give up
+		for (Object objectToReveal = selection; objectToReveal != null;) {
+			treeViewer.reveal(objectToReveal);
+			if (treeViewer.testFindItem(objectToReveal) != null) {
+				// Select it and we're done
+				treeViewer.setSelection(new StructuredSelection(objectToReveal));
+				result = objectToReveal == selection;
+				break;
+			}
+
+			// Look up the content tree for an object to reveal
+			objectToReveal = ((ITreeContentProvider) treeViewer.getContentProvider()).getParent(objectToReveal);
+		}
+
+		return result;
+	}
+
+	private void revealInDetail(ECPSWTView detail, EObject object, EStructuralFeature feature) {
+		final ViewModelContext context = detail.getViewModelContext();
+		if (!context.hasService(EMFFormsRevealService.class)) {
+			// Nothing to do
+			return;
+		}
+
+		final EMFFormsRevealService reveal = context.getService(EMFFormsRevealService.class);
+		reveal.reveal(object, feature);
+	}
+
+	/**
 	 * Gets the editing domain.
 	 *
 	 * @return the editing domain
@@ -574,11 +586,22 @@
 	 *
 	 * @param cache The {@link TreeMasterDetailCache} to use.
 	 * @since 1.9
+	 *
+	 * @deprecated As of 1.22, use the {@link #setCache(DetailViewCache)} API, instead
 	 */
+	@Deprecated
 	public void setCache(TreeMasterDetailCache cache) {
-		if (cache != null) {
-			this.cache = cache;
-		}
+		setCache((DetailViewCache) cache);
+	}
+
+	/**
+	 * Override the default cache implementation.
+	 *
+	 * @param cache the {@link DetailViewCache} to use, or {@code null} to use no cache
+	 * @since 1.22
+	 */
+	public void setCache(DetailViewCache cache) {
+		detailManager.setCache(cache);
 	}
 
 	private void doUpdateDetailPanel(boolean setFocusToDetail) {
@@ -595,6 +618,17 @@
 	}
 
 	/**
+	 * Returns whether I am read-only.
+	 *
+	 * @return <code>true</code> if read-only
+	 * @since 1.22
+	 * @see TreeMasterDetailSWTBuilder#customizeReadOnly(boolean)
+	 */
+	public boolean isReadOnly() {
+		return customization.isReadOnly();
+	}
+
+	/**
 	 * Adapter which listens to changes and delegates the notification to other EObjects.
 	 *
 	 * @author Eugen Neufeld
@@ -649,47 +683,44 @@
 	private final class UpdateDetailRunnable implements Runnable {
 		private final boolean setFocusToDetail;
 		private final EObject eObject;
-		private final Label label;
 
-		UpdateDetailRunnable(boolean setFocusToDetail, EObject eObject, Label label) {
+		UpdateDetailRunnable(boolean setFocusToDetail, EObject eObject) {
+			super();
+
 			this.setFocusToDetail = setFocusToDetail;
 			this.eObject = eObject;
-			this.label = label;
 		}
 
 		@Override
 		public void run() {
-			try {
-				if (viewModelPropertiesUpdateCallback != null) {
-					viewModelPropertiesUpdateCallback.updateViewModelProperties(context);
-				}
-				final VView view = ViewProviderHelper.getView(eObject, context);
-				final ViewModelContext modelContext = ViewModelContextFactory.INSTANCE
-					.createViewModelContext(
-						view, eObject, customization.getViewModelServices(view, eObject));
-				if (limbo.isDisposed()) {
-					return;
-				}
-				renderedView = ECPSWTViewRenderer.INSTANCE.render(limbo, modelContext);
+			if (detailManager.isDisposed()) {
+				// We've been disposed. Nothing to do
+				return;
+			}
 
-				label.dispose();
-				if (detailPanel.isDisposed()) {
-					return;
-				}
-				renderedView.getSWTControl().setParent(detailPanel);
-				detailPanel.layout(true, true);
-				if (ScrolledComposite.class.isInstance(detailComposite)) {
-					ScrolledComposite.class.cast(detailComposite)
-						.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-				}
-				if (setFocusToDetail) {
-					setFocusToDetail();
-				}
-				// notify callbacks that the rendering was finished
-				for (final DetailPanelRenderingFinishedCallback callback : detailPanelRenderingFinishedCallbacks) {
-					callback.renderingFinished(eObject);
-				}
-			} catch (final ECPRendererException e) {
+			if (viewModelPropertiesUpdateCallback != null) {
+				viewModelPropertiesUpdateCallback.updateViewModelProperties(detailManager.getDetailProperties());
+			}
+			final VView view = detailManager.getDetailView(eObject);
+			// Even if the TMD is not configured as read-only honor the effective read-only
+			// configuration of the loaded view
+			view.setReadonly(view.isEffectivelyReadonly() || customization.isReadOnly());
+			final ViewModelContext modelContext = ViewModelContextFactory.INSTANCE
+				.createViewModelContext(
+					view, eObject, customization.getViewModelServices(view, eObject));
+
+			detailManager.setNoDetailMessage(selectNodeMessage);
+			if (detailManager.isDisposed()) {
+				return;
+			}
+			detailManager.render(modelContext, ECPSWTViewRenderer.INSTANCE::render);
+			updateScrolledComposite();
+			if (setFocusToDetail) {
+				setFocusToDetail();
+			}
+			// notify callbacks that the rendering was finished
+			for (final DetailPanelRenderingFinishedCallback callback : detailPanelRenderingFinishedCallbacks) {
+				callback.renderingFinished(eObject);
 			}
 		}
 	}
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailSWTBuilder.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailSWTBuilder.java
index ca26af0..af87750 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailSWTBuilder.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailSWTBuilder.java
@@ -339,6 +339,25 @@
 	}
 
 	/**
+	 * Use this method to specify whether the tree and its details should be rendered as read-only. The default is
+	 * false. Setting the tree master detail as read-only has the following implications:
+	 * <ul>
+	 * <li>Set all detail views as read-only</li>
+	 * <li>Disable the tree's context menu</li>
+	 * <li>Deactivate drag and drop in the tree</li>
+	 * </ul>
+	 * <strong>Note:</strong> Setting this to true voids all menu and DND customizations.
+	 *
+	 * @param readOnly <code>true</code> to make the tree master detail read-only.
+	 * @return self
+	 * @since 1.22
+	 */
+	public TreeMasterDetailSWTBuilder customizeReadOnly(boolean readOnly) {
+		behaviour.setReadOnly(readOnly);
+		return this;
+	}
+
+	/**
 	 * Call this method after all desired customizations have been passed to the builder. The will create a new
 	 * {@link TreeMasterDetailComposite} with the desired customizations.
 	 *
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeReadOnlyProvider.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeReadOnlyProvider.java
new file mode 100644
index 0000000..63f8969
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeReadOnlyProvider.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.treemasterdetail;
+
+/**
+ * @author Lucas Koehler
+ * @since 1.22
+ *
+ */
+public interface TreeReadOnlyProvider {
+
+	/**
+	 * Returns whether the tree should be read-only.
+	 * 
+	 * @return <code>true</code> if the tree is read-only
+	 */
+	boolean isReadOnly();
+}
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeViewerCustomization.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeViewerCustomization.java
index 5a0ed2c..3033d40 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeViewerCustomization.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeViewerCustomization.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Lucas Koehler - Add read-only configuration for Bug 541190
  ******************************************************************************/
 package org.eclipse.emfforms.spi.swt.treemasterdetail;
 
@@ -22,5 +23,6 @@
  *
  */
 public interface TreeViewerCustomization extends TreeViewerBuilder, ContentProviderProvider, DNDProvider,
-	InitialSelectionProvider, LabelProviderProvider, ViewerFilterProvider, MenuProvider, LabelDecoratorProvider {
+	InitialSelectionProvider, LabelProviderProvider, ViewerFilterProvider, MenuProvider, LabelDecoratorProvider,
+	TreeReadOnlyProvider {
 }
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/actions/delegating/PasteInParentAction.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/actions/delegating/PasteInParentAction.java
index 74e81e7..86bd240 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/actions/delegating/PasteInParentAction.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/actions/delegating/PasteInParentAction.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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Jonas Helming - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.spi.swt.treemasterdetail.actions.delegating;
 
@@ -31,7 +32,7 @@
  */
 public class PasteInParentAction extends CommandActionHandler {
 	private static final String PASTE_IN_PARENT = LocalizationServiceHelper.getString(PasteInParentAction.class,
-		"PasteInParent");
+		"PasteInParent"); //$NON-NLS-1$
 
 	/**
 	 * Default constructor.
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java
index fe3275d..a6ab6b7 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java
@@ -322,11 +322,18 @@
 					if (o1 == o2) {
 						return 0;
 					}
-					return 1;
+					return getHashCode(o1) - getHashCode(o2);
 				}
 				return -1 * Integer.class.cast(o1.getSeverity()).compareTo(o2.getSeverity());
 			}
 
+			private int getHashCode(Diagnostic o) {
+				if (o.getData().isEmpty()) {
+					return 0;
+				}
+				return o.getData().hashCode();
+			}
+
 		});
 
 		DiagnosticTreeNode(Diagnostic initialValue) {
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9de3fcd..5c896bd 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model.provider;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 ea208cc..cfeb086 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4fe1fe9..82e4481 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model;version="1.21.0",
- org.eclipse.emf.emfforms.spi.view.annotation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.emfforms.spi.view.annotation.model.util;version="1.21.0";x-friends:="org.eclipse.emfforms.view.annotation.model.edit"
+Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model;version="1.22.0",
+ org.eclipse.emf.emfforms.spi.view.annotation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.emfforms.spi.view.annotation.model.util;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 3c6653c..bf1d2da 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9c6cbaa..c530fe6 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model.provider;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";resolution:=optional,
- org.eclipse.emf.ecp.view.spi.table.model;version="[1.21.0,1.22.0)";resolution:=optional
+Import-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="[1.22.0,1.23.0)";resolution:=optional,
+ org.eclipse.emf.ecp.view.spi.table.model;version="[1.22.0,1.23.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 4f4cd4a..c546280 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.controlgrid.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.controlgrid.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.controlgrid.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.controlgrid.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 de82ff6..c72748e 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="1.21.0",
- org.eclipse.emf.emfforms.spi.view.controlgrid.model.impl;version="1.21.0",
- org.eclipse.emf.emfforms.spi.view.controlgrid.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="1.22.0",
+ org.eclipse.emf.emfforms.spi.view.controlgrid.model.impl;version="1.22.0",
+ org.eclipse.emf.emfforms.spi.view.controlgrid.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 6a0123b..dcfa405 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 626db29..146c86d 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
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.spi.view.indexsegment.model.provider.IndexsegmentEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model.provider;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 83ae636..755275f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.indexsegment.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 95256ac..ac8fd42 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
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model;version="1.21.0",
- org.eclipse.emfforms.spi.view.indexsegment.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.view.indexsegment.model.util;version="1.21.0";x-friends:="org.eclipse.emfforms.view.indexsegment.model.edit"
+Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model;version="1.22.0",
+ org.eclipse.emfforms.spi.view.indexsegment.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.view.indexsegment.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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/plugin.xml b/bundles/org.eclipse.emfforms.view.indexsegment.model/plugin.xml
index 6500dae..98f60b8 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model/plugin.xml
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model/plugin.xml
@@ -32,4 +32,11 @@
             class="org.eclipse.emfforms.spi.view.indexsegment.model.util.VIndexsegmentResourceFactoryImpl"/>
    </extension>
 
+   <extension
+         point="org.eclipse.emf.edapt.migrators">
+      <migrator
+            path="model/indexsegment.history">
+      </migrator>
+   </extension>
+
 </plugin>
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model/pom.xml b/bundles/org.eclipse.emfforms.view.indexsegment.model/pom.xml
index 60ed2f3..e507013 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 79fe28d..439b744 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
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.spi.view.mappingsegment.model.provider.MappingsegmentEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model.provider;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 64594c6..436022f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.mappingsegment.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bba75e8..6bb6ec2 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model;version="1.21.0",
- org.eclipse.emfforms.spi.view.mappingsegment.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.view.mappingsegment.model.util;version="1.21.0";x-friends:="org.eclipse.emfforms.view.mappingsegment.model.edit"
+Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model;version="1.22.0",
+ org.eclipse.emfforms.spi.view.mappingsegment.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.view.mappingsegment.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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/plugin.xml b/bundles/org.eclipse.emfforms.view.mappingsegment.model/plugin.xml
index 7b133f1..1507777 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model/plugin.xml
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model/plugin.xml
@@ -32,4 +32,11 @@
             class="org.eclipse.emfforms.spi.view.mappingsegment.model.util.VMappingsegmentResourceFactoryImpl"/>
    </extension>
 
+   <extension
+         point="org.eclipse.emf.edapt.migrators">
+      <migrator
+            path="model/mappingsegment.history">
+      </migrator>
+   </extension>
+
 </plugin>
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model/pom.xml b/bundles/org.eclipse.emfforms.view.mappingsegment.model/pom.xml
index 1d4db8c..9763777 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e1364b6..163b73c 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.view;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.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 42e022c..17ebb45 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.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.multisegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.multisegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e058aff..655a05f 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.view.spi.multisegment.model.provider.MultisegmentEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 37aa4cd..3e44ff0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.multisegment.model/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.multisegment.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bb8c186..bdc209b 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.multisegment.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.view.spi.multisegment.model;version="1.21.0",
- org.eclipse.emfforms.view.spi.multisegment.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.view.spi.multisegment.model.util;version="1.21.0";x-friends:="org.eclipse.emfforms.view.multisegment.model.edit"
+Export-Package: org.eclipse.emfforms.view.spi.multisegment.model;version="1.22.0",
+ org.eclipse.emfforms.view.spi.multisegment.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.view.spi.multisegment.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 a30fe63..126fcae 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 72eaacc..46d7e00 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
@@ -13,8 +13,8 @@
  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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 15c3a60..58d4795 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
@@ -11,13 +11,13 @@
  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.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.label;version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.internal.core.services.label;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7ca3ccb..5419c40 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c8b14e7..dd66d8d 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,8 +5,8 @@
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.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
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b514842..1b8bfa5 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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 34c0e9a..da0cfe8 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,20 +7,20 @@
 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.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.label;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.spi.context;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.22.0,1.23.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
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 42c09ae..d13bc50 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
@@ -11,22 +11,22 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.apache.poi;bundle-version="[3.8.0,4.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.0)"
 Import-Package: org.eclipse.emf.databinding;version="0.0.0",
- org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.localization;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.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
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 79050fd..b27414f 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
@@ -7,12 +7,12 @@
 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.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/.settings/org.eclipse.pde.api.tools.prefs
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c0bc4bc..9a075fc 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
@@ -8,11 +8,11 @@
  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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 235da42..1c1b396 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Framework
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e3;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e3;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml
index 9dbedcc..5a7a17d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   
   <properties>
   	<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d0a3ea7..6d071ac 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample Application e4
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e4;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts;version="1.22.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)",
@@ -16,10 +16,10 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml
index f639bd7..2c767e0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 
   <properties>
   	<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1fa73f1..038c323 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
@@ -8,8 +8,8 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 26f757c..22c021c 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample J2ee RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.rap.jface;bundle-version="[2.0.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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
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 a1004a1..99997eb 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_121"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_122"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
@@ -13,7 +13,7 @@
 <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.rap.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/2019-03"/>
+<repository location="http://download.eclipse.org/releases/2019-06"/>
 </location>
 </locations>
 </target>
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 adab25d..ee3ceb5 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 

   <properties>

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

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3605825..bcbfdd2 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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 90a679b..9668bd8 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_121"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_122"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
@@ -13,7 +13,7 @@
 <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.rap.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/2019-03"/>
+<repository location="http://download.eclipse.org/releases/2019-06"/>
 </location>
 </locations>
 </target>
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 ef29644..31e42aa 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 163e0d9..9393f5c 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -31,7 +31,8 @@
          id="org.eclipse.emf.ecp.makeithappen.model.viewmodel"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
    <plugin
          id="org.eclipse.emf.ecp.makeithappen.model.edit"
@@ -68,4 +69,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.jface.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 4bcfc4e..94e54b0 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 7675395..0cf88ab 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -45,7 +45,8 @@
          id="org.eclipse.emf.ecp.makeithappen.model.viewmodel"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
    <plugin
          id="org.eclipse.ui"
@@ -89,4 +90,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.jface.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 944ef83..466e76a 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 275b45f..5f88ebe 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 8a4295b..e95b054 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 477f7f2..9af4e44 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model.edit;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.makeithappen.model.task.provider;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.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
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 739b5a8..04b5b6c 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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 d0b455f..47bfaab 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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 0553c2f..49cf9b9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5c6d507..46c8a0a 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.makeithappen.model.task;version="1.21.0",
- org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.21.0",
- org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.makeithappen.model.task;version="1.22.0",
+ org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.22.0",
+ org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.22.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 c9ba2d3..882f8de 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs
index ee972d9..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,104 @@
-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

+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+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_FIELD=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_DEFAULT_METHOD=Ignore
+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_ANNOTATION=Warning
+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
+changed_execution_env=Error
+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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
+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/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 2f2465f..ac0b5b4 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,29 +2,29 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EmailControl
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.email.renderer;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
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 5ee546c..03a1387 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f0faaeb..33bab7a 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,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Expandbar Group Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.group.renderer;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201905211554.jar,
  .
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;version="1.21.0",
+Export-Package: org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)"
 Import-Package: javax.inject;version="1.0.0",
- org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0",
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 d811830..bb947d3 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emf.ecp.makeithappen.wizards/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 efa7b56..b259e34 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Make It Happen Examples
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.wizards;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.makeithappen.internal.wizards;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.22.0,1.23.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)",
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
index e92c43f..834c77d 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+	<version>1.22.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 d452742..0b16bee 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.coffee.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -38,6 +38,7 @@
          id="org.eclipse.emfforms.coffee.model.viewmodel"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
diff --git a/examples/org.eclipse.emfforms.coffee.feature/pom.xml b/examples/org.eclipse.emfforms.coffee.feature/pom.xml
index b78effd..faf5f7c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	   <build>
diff --git a/examples/org.eclipse.emfforms.coffee.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emfforms.coffee.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emfforms.coffee.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emfforms.coffee.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 97ea2cd..7400f2f 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.model.edit;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emfforms.coffee.model.coffee.provider;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emfforms.coffee.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emfforms.coffee.model;bundle-version="[1.22.0,1.23.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
diff --git a/examples/org.eclipse.emfforms.coffee.model.edit/pom.xml b/examples/org.eclipse.emfforms.coffee.model.edit/pom.xml
index a4c0042..2eb3236 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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 b8f0691..e439671 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.21.0.qualifier
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
+Bundle-Version: 1.22.0.qualifier
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)"
diff --git a/examples/org.eclipse.emfforms.coffee.model.viewmodel/pom.xml b/examples/org.eclipse.emfforms.coffee.model.viewmodel/pom.xml
index 105ee29..44639e6 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/examples/org.eclipse.emfforms.coffee.model/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emfforms.coffee.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emfforms.coffee.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emfforms.coffee.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 457d1de..8e6a1a8 100644
--- a/examples/org.eclipse.emfforms.coffee.model/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.coffee.model/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.coffee.model.coffee;version="1.21.0",
- org.eclipse.emfforms.coffee.model.coffee.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.coffee.model.coffee.util;version="1.21.0"
+Export-Package: org.eclipse.emfforms.coffee.model.coffee;version="1.22.0",
+ org.eclipse.emfforms.coffee.model.coffee.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.coffee.model.coffee.util;version="1.22.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.emfforms.coffee.model/pom.xml b/examples/org.eclipse.emfforms.coffee.model/pom.xml
index 7d9b54c..f1d61a7 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/examples/org.eclipse.emfforms.coffee.wizards/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emfforms.coffee.wizards/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emfforms.coffee.wizards/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emfforms.coffee.wizards/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2db1af7..f013c9d 100644
--- a/examples/org.eclipse.emfforms.coffee.wizards/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.coffee.wizards/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Coffee Model Example Wizards
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.wizards;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.coffee.wizards;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.coffee.wizards;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.22.0,1.23.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)"
diff --git a/examples/org.eclipse.emfforms.coffee.wizards/pom.xml b/examples/org.eclipse.emfforms.coffee.wizards/pom.xml
index 996b7e0..3d61b0e 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+	<version>1.22.0-SNAPSHOT</version>

 	<packaging>eclipse-plugin</packaging>

 

 	<build>

diff --git a/examples/org.eclipse.emfforms.example.common.wizards/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emfforms.example.common.wizards/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/examples/org.eclipse.emfforms.example.common.wizards/.settings/org.eclipse.pde.api.tools.prefs
+++ b/examples/org.eclipse.emfforms.example.common.wizards/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 615924c..099a37d 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Wizards for EMFForms Examples
 Bundle-SymbolicName: org.eclipse.emfforms.example.common.wizards;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.example.wizards;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.example.wizards;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.example.wizards;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.example.wizards;version="1.22.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)",
diff --git a/examples/org.eclipse.emfforms.example.common.wizards/pom.xml b/examples/org.eclipse.emfforms.example.common.wizards/pom.xml
index 13957b6..8bde3ef 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+	<version>1.22.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 97c8dcb..b145590 100644
--- a/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
@@ -14,12 +14,12 @@
 <feature
       id="org.eclipse.emf.ecp.cdo.feature"
       label="ECP CDO Integration (Experimental)"
-      version="1.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 fcfcf8c..8d70d03 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 9ec8756..3d14886 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 0602603..4ae11bc 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 d8d2402..a0d630c 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 b27930f..1c9e65d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 42590a1..6aeabfc 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 87dd1ca..835ad42 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 0739cc8..dbc86a3 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -46,7 +46,8 @@
          id="org.eclipse.emf.ecp.diffmerge.model"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
    <plugin
          id="org.eclipse.emf.ecp.diffmerge.model.edit"
diff --git a/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml b/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml
index b63c78c..deba5f9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 7a7611f..99e651d 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 09d3725..722efad 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 dd226b1..bf821e8 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 fcd44fa..1e4cd8e 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 f016a56..c1f51f9 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.21.0.qualifier"

+      version="1.22.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.21.0.qualifier">

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

 

    <description>

       %description

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 54b1ebe..f7ed1f9 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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 4d79d6b..b9babc7 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 84ed065..397fdc8 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 5269184..3f21271 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 171288e..ad63e06 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 47390f3..d4bf42d 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -63,7 +63,8 @@
          id="org.eclipse.emf.ecp.ide.editor.viewmodel"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
    <plugin
          id="org.eclipse.emf.ecp.ide.editor.view"
@@ -76,7 +77,8 @@
          id="org.eclipse.emf.ecp.ide.view.service"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
    <plugin
          id="org.eclipse.emf.ecp.makeithappen.wizards"
@@ -141,4 +143,31 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emfforms.ide.view.segments"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.ide.view.indexsegment"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.ide.view.mappingsegment"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.ide.preferences"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
 </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 d775008..df1e223 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 24133ac..c8d26a2 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 4ade582..c131d25 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 3dfe8b2..b929331 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 2f00b99..5cbb6b4 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 d5f09b4..9b9f2ff 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -46,6 +46,7 @@
          id="org.eclipse.emf.ecp.emfstore.ui.e3"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
diff --git a/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml b/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml
index 72d94ec..4c30426 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 7c33122..c071c85 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 0721bcd..b595cfb 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 058da29..37606a5 100644
--- a/features/org.eclipse.emf.ecp.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.feature/feature.xml
@@ -14,12 +14,12 @@
 <feature
       id="org.eclipse.emf.ecp.feature"
       label="ECP Core"
-      version="1.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 740a726..74389c7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 51d34d2..cb309d1 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 9191317..17c3510 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 05278f4..380d0d3 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 b580d75..0fa1f80 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 d1d7629..68ddbf5 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.21.0.qualifier"

+      version="1.22.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 6128203..c63cbe7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 d912024..0df9352 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 fe29229..f783681 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 026dee1..ce4366f 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 e20f3ca..655d5f0 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 28f8666..8bb1ed3 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 dc60f16..b261fa0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 c4f74bd..8e60582 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 3d45d77..dfab49c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 f9f5de7..8eac583 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 18d97cf..d11869c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 6a2b3d7..e4bf210 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 3acdc35..8152f1e 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 0c2000d..44b7dce 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 d77851b..80183fb 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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 e58544b..6148387 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 fb581cb..5a6dcce 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 fba4117..8a358ba 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 3c90d9a..6e1bdbb 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 b83da96..eb1d81b 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 89df64a..912c423 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.21.0-SNAPSHOT</version>
+    <version>1.22.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 d174c60..354f02f 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 d2f3693..773e88a 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a162cce..ed4a42b 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -21,13 +21,6 @@
    </license>
 
    <plugin
-         id="org.eclipse.emf.ecp.view.model.common.di"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.emf.ecp.ui.view.swt.di"
          download-size="0"
          install-size="0"
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 cc006e3..2d8128c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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 1bcf3e4..708c566 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 273d63f..1d2759a 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 36301ab..2e9a31f 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 4c1a131..592a2e4 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 e449eba..f17c24e 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 a36e431..7ba6ec3 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 0209762..f67e6c5 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 88fa96a..650bdb0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 87b7457..d553b9d 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -39,6 +39,7 @@
          id="org.eclipse.emf.ecp.view.horizontal.ui.swt"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
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 ec3d99c..8f25e19 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 df2e8f4..34808f0 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 d3b36d9..d64459d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a3478c5..03f6abe 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -39,6 +39,7 @@
          id="org.eclipse.emf.ecp.view.keyattributedmr.tooling"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
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 1a3ba5e..a830358 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 97bb92d..2d5a406 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -39,6 +39,7 @@
          id="org.eclipse.emf.ecp.view.label.ui.swt"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
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 248fdf3..5a234b8 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 1219b2e..af4fddf 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 719664a..254d302 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 5339da1..5683012 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 0457fb6..36ef6b3 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 d3c72ce..79f716a 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 50d69f6..d1e0151 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.model.feature/ECP IDE Tooling.launch b/features/org.eclipse.emf.ecp.view.model.feature/ECP IDE Tooling.launch
index e759e05..aff13f7 100644
--- a/features/org.eclipse.emf.ecp.view.model.feature/ECP IDE Tooling.launch
+++ b/features/org.eclipse.emf.ecp.view.model.feature/ECP IDE Tooling.launch
@@ -64,8 +64,8 @@
 <setEntry value="org.eclipse.platform:default"/>
 <setEntry value="org.eclipse.rcp:default"/>
 </setAttribute>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,lpg.runtime.java@default:default,org.apache.ant@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.svggen@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.xml@default:default,org.apache.commons.codec*1.10.0.v20180409-1845@default:default,org.apache.commons.codec*1.9.0.v20170208-1614@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.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.ant.launching@default:default,org.eclipse.ant.ui@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.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.beans*1.3.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@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.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@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.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.converter@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.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edapt.common@default:default,org.eclipse.emf.edapt.declaration@default:default,org.eclipse.emf.edapt.history@default:default,org.eclipse.emf.edapt.migration@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.ui.rcp@default:false,org.eclipse.emf.emfstore.client.ui@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.emf.workspace@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.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.gef@default:default,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@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.db.h2@default:default,org.eclipse.net4j.db.jdbc@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default,org.eclipse.ocl.common@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl@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.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.search@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.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@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.update.configurator@3:true,org.h2@default:default,org.hamcrest.core@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.sat4j.core@default:default,org.sat4j.pb@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.0.v200806040011@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.application.e3@default:default,org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.emffilter@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.doc@default:default,org.eclipse.emf.ecp.edit.ecore.swt@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.emfstore.ui.search@default:default,org.eclipse.emf.ecp.emfstore.ui@default:default,org.eclipse.emf.ecp.examplemodel.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.editor.view.templatebridge@default:default,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.wizards@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.transaction@default:default,org.eclipse.emf.ecp.ui.view.editor.controls@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.validation.connector@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.locale@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.custom.model.edit@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.edapt@default:default,org.eclipse.emf.ecp.view.group.model.edit@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.groupedgrid.model.edit@default:default,org.eclipse.emf.ecp.view.groupedgrid.model@default:default,org.eclipse.emf.ecp.view.groupedgrid.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model.edit@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@default:default,org.eclipse.emf.ecp.view.mappingdmr.model.edit@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.editor@default:default,org.eclipse.emf.ecp.view.model.preview.common@default:default,org.eclipse.emf.ecp.view.model.preview.e3@default:default,org.eclipse.emf.ecp.view.model.project.installer@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.edit@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.rule@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.edapt@default:default,org.eclipse.emf.ecp.view.table.model.edit@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model.edit@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model.edit@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.template.tooling@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model.edit@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.unset@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.edit@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emf.ecp.workspace.core@default:default,org.eclipse.emf.ecp.workspace.ui@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.editor.ecore@default:default,org.eclipse.emfforms.editor.genmodel.util@default:default,org.eclipse.emfforms.editor.genmodel@default:default,org.eclipse.emfforms.editor.viewmodel@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.control.multiattribute@default:default,org.eclipse.emfforms.swt.controlgrid@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.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model.edit@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model.edit@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,javax.annotation,javax.inject,javax.servlet,lpg.runtime.java,org.apache.ant,org.apache.batik.constants*1.11.0.v20190515-0436,org.apache.batik.css*1.11.0.v20190515-0436,org.apache.batik.i18n*1.11.0.v20190515-0436,org.apache.batik.util*1.11.0.v20190515-0436,org.apache.commons.codec,org.apache.commons.jxpath,org.apache.commons.logging*1.1.1.v201101211721,org.apache.commons.logging*1.2.0.v20180409-1502,org.apache.felix.gogo.command,org.apache.felix.gogo.runtime,org.apache.felix.scr,org.apache.lucene.analyzers-common,org.apache.lucene.analyzers-smartcn,org.apache.lucene.core,org.apache.xmlgraphics,org.eclipse.ant.core,org.eclipse.ant.launching,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.compare.core,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.databinding.observable,org.eclipse.core.databinding.property,org.eclipse.core.expressions,org.eclipse.core.externaltools,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.linux.x86_64,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.net.linux.x86_64,org.eclipse.core.resources,org.eclipse.core.runtime,org.eclipse.core.variables,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.draw2d,org.eclipse.e4.core.commands,org.eclipse.e4.core.contexts,org.eclipse.e4.core.di,org.eclipse.e4.core.di.annotations,org.eclipse.e4.core.di.extensions,org.eclipse.e4.core.di.extensions.supplier,org.eclipse.e4.core.services,org.eclipse.e4.emf.xpath,org.eclipse.e4.ui.bindings,org.eclipse.e4.ui.css.core,org.eclipse.e4.ui.css.swt,org.eclipse.e4.ui.css.swt.theme,org.eclipse.e4.ui.di,org.eclipse.e4.ui.model.workbench,org.eclipse.e4.ui.services,org.eclipse.e4.ui.swt.gtk,org.eclipse.e4.ui.widgets,org.eclipse.e4.ui.workbench,org.eclipse.e4.ui.workbench.addons.swt,org.eclipse.e4.ui.workbench.renderers.swt,org.eclipse.e4.ui.workbench.swt,org.eclipse.e4.ui.workbench3,org.eclipse.emf.codegen,org.eclipse.emf.codegen.ecore,org.eclipse.emf.codegen.ecore.ui,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.converter,org.eclipse.emf.databinding,org.eclipse.emf.databinding.edit,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.editor,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edapt.common,org.eclipse.emf.edapt.declaration,org.eclipse.emf.edapt.history,org.eclipse.emf.edapt.migration,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.rcp,org.eclipse.emf.emfstore.common,org.eclipse.emf.emfstore.common.model,org.eclipse.emf.emfstore.common.model.edit,org.eclipse.emf.emfstore.examplemodel,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.migration,org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model,org.eclipse.emf.emfstore.server.model.edit,org.eclipse.emf.importer,org.eclipse.emf.importer.ecore,org.eclipse.emf.transaction,org.eclipse.emf.validation,org.eclipse.emf.workspace,org.eclipse.equinox.app,org.eclipse.equinox.bidi,org.eclipse.equinox.common,org.eclipse.equinox.ds,org.eclipse.equinox.event,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.http.registry,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.operations,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.ui,org.eclipse.equinox.preferences,org.eclipse.equinox.region,org.eclipse.equinox.registry,org.eclipse.equinox.security,org.eclipse.equinox.security.ui,org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.supplement,org.eclipse.equinox.transforms.hook,org.eclipse.equinox.util,org.eclipse.equinox.weaving.hook,org.eclipse.gef,org.eclipse.help,org.eclipse.help.base,org.eclipse.jdt,org.eclipse.jdt.compiler.apt,org.eclipse.jdt.compiler.tool,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.junit,org.eclipse.jdt.junit.core,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.net4j,org.eclipse.net4j.db,org.eclipse.net4j.db.h2,org.eclipse.net4j.db.jdbc,org.eclipse.net4j.jvm,org.eclipse.net4j.ui.shared,org.eclipse.net4j.util,org.eclipse.net4j.util.ui,org.eclipse.ocl,org.eclipse.ocl.common,org.eclipse.ocl.ecore,org.eclipse.osgi,org.eclipse.osgi.compatibility.state,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.gtk.linux.x86_64,org.eclipse.swtbot.ant.junit,org.eclipse.team.core,org.eclipse.team.ui,org.eclipse.text,org.eclipse.ui,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.trace,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.workbench,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.urischeme,org.h2,org.hamcrest.core,org.junit,org.mockito.mockito-core-hamcrest-modified,org.objenesis,org.sat4j.core,org.sat4j.pb,org.slf4j.api,org.tukaani.xz,org.w3c.css.sac,org.w3c.dom.events,org.w3c.dom.smil*1.0.0.v200806040011,org.w3c.dom.smil*1.0.1.v200903091627,org.w3c.dom.svg"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.application.e3,org.eclipse.emf.ecp.common,org.eclipse.emf.ecp.common.ui,org.eclipse.emf.ecp.core,org.eclipse.emf.ecp.core.emffilter,org.eclipse.emf.ecp.doc,org.eclipse.emf.ecp.edit,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.editor.e3,org.eclipse.emf.ecp.emfstore.core,org.eclipse.emf.ecp.emfstore.ui,org.eclipse.emf.ecp.emfstore.ui.search,org.eclipse.emf.ecp.examplemodel.ui,org.eclipse.emf.ecp.explorereditorbridge,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.templatebridge,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util,org.eclipse.emf.ecp.ide.view.service,org.eclipse.emf.ecp.makeithappen.wizards@default:default,org.eclipse.emf.ecp.ui,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.rcp,org.eclipse.emf.ecp.ui.transaction,org.eclipse.emf.ecp.ui.view,org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.ui.view.swt,org.eclipse.emf.ecp.validation,org.eclipse.emf.ecp.validation.connector,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.context,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.control.multireference,org.eclipse.emf.ecp.view.core.swt,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.edapt,org.eclipse.emf.ecp.view.group.model,org.eclipse.emf.ecp.view.group.model.edit,org.eclipse.emf.ecp.view.group.ui.swt,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.model,org.eclipse.emf.ecp.view.horizontal.model.edit,org.eclipse.emf.ecp.view.horizontal.ui.swt,org.eclipse.emf.ecp.view.indexdmr.model,org.eclipse.emf.ecp.view.indexdmr.model.edit,org.eclipse.emf.ecp.view.label.model,org.eclipse.emf.ecp.view.label.model.edit,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.migrator,org.eclipse.emf.ecp.view.model,org.eclipse.emf.ecp.view.model.common,org.eclipse.emf.ecp.view.model.common.di,org.eclipse.emf.ecp.view.model.edit,org.eclipse.emf.ecp.view.model.editor,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.model.provider.generator,org.eclipse.emf.ecp.view.model.provider.xmi,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.stack.model,org.eclipse.emf.ecp.view.swt.layout,org.eclipse.emf.ecp.view.table.columnservice,org.eclipse.emf.ecp.view.table.edapt,org.eclipse.emf.ecp.view.table.model,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emf.ecp.view.table.validation,org.eclipse.emf.ecp.view.template.annotation.model,org.eclipse.emf.ecp.view.template.annotation.model.edit,org.eclipse.emf.ecp.view.template.model,org.eclipse.emf.ecp.view.template.model.edit,org.eclipse.emf.ecp.view.template.service,org.eclipse.emf.ecp.view.template.tooling,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.validation,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.util.swt,org.eclipse.emf.ecp.view.validation,org.eclipse.emf.ecp.view.vertical.model,org.eclipse.emf.ecp.view.vertical.model.edit,org.eclipse.emf.ecp.view.vertical.ui.swt,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emfforms.common,org.eclipse.emfforms.common.prevalidation,org.eclipse.emfforms.common.validation,org.eclipse.emfforms.core.bazaar,org.eclipse.emfforms.core.services,org.eclipse.emfforms.core.services.databinding.featurepath,org.eclipse.emfforms.core.services.databinding.index,org.eclipse.emfforms.core.services.databinding.mapping,org.eclipse.emfforms.core.services.domainexpander.default,org.eclipse.emfforms.core.services.domainexpander.index,org.eclipse.emfforms.core.services.domainexpander.mapping,org.eclipse.emfforms.core.services.domainexpander.table,org.eclipse.emfforms.core.services.editsupport,org.eclipse.emfforms.core.services.emf,org.eclipse.emfforms.core.services.emfspecificservice,org.eclipse.emfforms.core.services.legacy,org.eclipse.emfforms.core.services.locale.default,org.eclipse.emfforms.core.services.mappingprovider.default,org.eclipse.emfforms.core.services.mappingprovider.table,org.eclipse.emfforms.core.services.segments,org.eclipse.emfforms.core.services.segments.featurepath,org.eclipse.emfforms.core.services.segments.index,org.eclipse.emfforms.core.services.segments.mapping,org.eclipse.emfforms.core.services.segments.multi,org.eclipse.emfforms.core.services.structuralchange,org.eclipse.emfforms.core.services.structuralchange.default,org.eclipse.emfforms.core.services.structuralchange.index,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.genmodel,org.eclipse.emfforms.editor.genmodel.util,org.eclipse.emfforms.editor.viewmodel,org.eclipse.emfforms.example.common.wizards@default:default,org.eclipse.emfforms.ide.view.indexsegment,org.eclipse.emfforms.ide.view.multisegment,org.eclipse.emfforms.ide.view.segments,org.eclipse.emfforms.localization,org.eclipse.emfforms.setup.base,org.eclipse.emfforms.swt.control.multiattribute,org.eclipse.emfforms.swt.controlgrid,org.eclipse.emfforms.swt.core,org.eclipse.emfforms.swt.core.di,org.eclipse.emfforms.swt.core.di.extension,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.indexsegment.model,org.eclipse.emfforms.view.mappingsegment.model,org.eclipse.emfforms.view.model.localization,org.eclipse.emfforms.view.multisegment.model"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <stringAttribute key="timestamp" value="1366714902913"/>
 <booleanAttribute key="tracing" value="false"/>
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 5d56f33..dded6b4 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -290,4 +290,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emf.ecp.view.model.common.di"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 f7510c4..ee552ed 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 4a923f5..f004d2a 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 c761122..fe79621 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 ae684cb..d33c54e 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 ea93c84..3d021a2 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a43c3c2..ae6cfed 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 4b0d606..aef507b 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 c8d82ab..0c8859c 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 54af59c..a452649 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 d769074..eacaec5 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -98,4 +98,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emfforms.swt.reference.table"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 0cbc3d0..cba0ba6 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 87fade6..0e79da5 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 7326de9..5e5f50a 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 525e28c..8cd7618 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 793b0d3..abccc23 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 34f33d7..02c4a71 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 bae3f32..f7ef378 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 ee8dfb1..d640fa3 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 be54cca..4cb1c91 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a5c6039..00c6181 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 355d5f7..aca2c32 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 9fbeaff..6784784 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 bd46019..7618d67 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 7504919a..d777e34 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 af0ebe3..f026266 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 ff03e77..3504277 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 bc575a6..7471a14 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 06d265a..cb320f5 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -32,6 +32,7 @@
          id="org.eclipse.emf.ecp.view.treemasterdetail.validation"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
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 21658be..2e17a49 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a304109..2283399 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 dfce422..912aa90 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 bc16190..0e2c0b3 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 08ff47f..9da428c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 144118f..007af47 100644
--- a/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
@@ -14,12 +14,12 @@
 <feature
       id="org.eclipse.emf.ecp.workspace.feature"
       label="ECP File Integration (Experimental)"
-      version="1.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 767fbaa..3bba245 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a25498e..540f1ab 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 37118b0..4b54bfc 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 6df7826..5e3bb32 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 47946b2..3f5ff77 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 5ebca8b..36323bd 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 499d9d2..c64bba9 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a812a0c..14691bc 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.datatemplate.tooling"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.datatemplate.ide.feature/pom.xml b/features/org.eclipse.emfforms.datatemplate.ide.feature/pom.xml
index 5eba5e5..b00e817 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a7b65d0..1bdc4a0 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.editor"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.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 e4f9a0f..219d199 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 f72aac2..bf26ea3 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 6426eca..0e7ad05 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.i18n.feature/feature.xml b/features/org.eclipse.emfforms.i18n.feature/feature.xml
index 0c92c4f..fc72ec1 100644
--- a/features/org.eclipse.emfforms.i18n.feature/feature.xml
+++ b/features/org.eclipse.emfforms.i18n.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emfforms.i18n.feature"
       label="EMFForms I18n Feature"
-      version="1.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description>
diff --git a/features/org.eclipse.emfforms.i18n.feature/pom.xml b/features/org.eclipse.emfforms.i18n.feature/pom.xml
index 951be32..0c19650 100644
--- a/features/org.eclipse.emfforms.i18n.feature/pom.xml
+++ b/features/org.eclipse.emfforms.i18n.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.i18n.feature</artifactId>
-  <version>1.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 	<build>
diff --git a/features/org.eclipse.emfforms.rulerepository.feature/feature.xml b/features/org.eclipse.emfforms.rulerepository.feature/feature.xml
index ad743bb..e1a352f 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 6db6411..ff73cf7 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 cfc2833..1e8b1e1 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.21.0.qualifier"
+      version="1.22.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.swt.control.multiattribute"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
@@ -24,6 +24,7 @@
          id="org.eclipse.emfforms.swt.control.multiattribute"
          download-size="0"
          install-size="0"
-         version="0.0.0"/>
+         version="0.0.0"
+         unpack="false"/>
 
 </feature>
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 a850e99..fb64a95 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a3346e7..fa2c915 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 f535ec2..9b1cceb 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 1cf17fa..03e9f87 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 dc38a2d..99d9419 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 e5a256d..ac1171e 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 3aebd04..86ed8bc 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 ca0c617..e1009a5 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 d2c600b..563f0f8 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 a32538c..0d57128 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.21.0.qualifier">
+      license-feature-version="1.22.0.qualifier">
 
    <description>
       %description
diff --git a/i18n/org.eclipse.emf.ecp.common.ui.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.common.ui.nl_de/META-INF/MANIFEST.MF
index f4ae88f..ff84014 100644
--- a/i18n/org.eclipse.emf.ecp.common.ui.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.common.ui.nl_de/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.common.ui German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.ui.nl_de
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)"
-Automatic-Module-Name: org.eclipse.emf.ecp.common.ui.nl_de
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: OSGI-INF/l10n/bundle
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.common.ui.nl_de
diff --git a/i18n/org.eclipse.emf.ecp.common.ui.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.common.ui.nl_de/pom.xml
index f9bd562..dd9c256 100644
--- a/i18n/org.eclipse.emf.ecp.common.ui.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.common.ui.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.21.0-SNAPSHOT</version>
+    <version>1.22.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.common.ui.nl_de</artifactId>
-  <version>1.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.core.nl_de/.project b/i18n/org.eclipse.emf.ecp.core.nl_de/.project
index 15b7f34..92d2c36 100644
--- a/i18n/org.eclipse.emf.ecp.core.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.core.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 f062eb6..fe108f5 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.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 a7aa7e6..4195c66 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/.project
index b6a92ba..9c7d74c 100644
--- a/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 b19eebe..893bd3c 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.diffmerge.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.diffmerge.model.edit;bundle-version="[1.22.0,1.23.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 6a556ff..4958627 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/.project b/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/.project
index 7ad8622..963fcd0 100644
--- a/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 58d0196..631833d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.22.0,1.23.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 04b2b91..08cd323 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.edit.nl_de/.project
index 17ba164..0041b52 100644
--- a/i18n/org.eclipse.emf.ecp.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 034b7c3..5270178 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.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 388887f..8cf4b9f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/.project b/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/.project
index a6bb998..fa7889d 100644
--- a/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 7bfd07c..74f1e6d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.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 c25af13..0b0efc1 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/.project b/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/.project
index 7bc451e..2031898 100644
--- a/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 fe51305..8a1deae 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.22.0,1.23.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 c2ebffd..94262d1 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/.project
index 46861e4..2de4c8e 100644
--- a/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 455eb23..24ab3d8 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.22.0,1.23.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 fe8200c..44a90ae 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/.project b/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/.project
index 02efce8..9b3dc67 100644
--- a/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 3a5fde2..d7d7611 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.makeithappen.wizards;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.makeithappen.wizards;bundle-version="[1.22.0,1.23.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 789d2ff..41e4a8d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/.project
index 9277205..eaffbfd 100644
--- a/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 2747d13..b752e19 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.test.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.test.model.edit;bundle-version="[1.22.0,1.23.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 d3a6008..3a59822 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/.project b/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/.project
index 37e17f9..0968b15 100644
--- a/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 5aaafdc..9fd3b73 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.e3;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.e3;bundle-version="[1.22.0,1.23.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 8c95000..3c49899 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.nl_de/.project b/i18n/org.eclipse.emf.ecp.ui.nl_de/.project
index 0d6e29e..c62549e 100644
--- a/i18n/org.eclipse.emf.ecp.ui.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.ui.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 4176b6f..a03e241 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.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 592de62..b550352 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/.project b/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/.project
index bdcbe29..9fe1200 100644
--- a/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 161f941..87f9ed9 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.22.0,1.23.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 b151ddb..3d9d2a4 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/.project b/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/.project
index a0528e4..ecb6fb5 100644
--- a/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 76c37f5..2f61b49 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.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 d59cdf6..257bb67 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.validation.nl_de/.project b/i18n/org.eclipse.emf.ecp.validation.nl_de/.project
index ab2bb2d..631e1d8 100644
--- a/i18n/org.eclipse.emf.ecp.validation.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.validation.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 38961fe..43effb1 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.22.0,1.23.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 047197d..8c68299 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/.project
index b4443af..5beff2b 100644
--- a/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 913ddd9..2ab35a0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.22.0,1.23.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 99e4e24..7171534 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/.project
index d939764..8d4facf 100644
--- a/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 7de613e..b405d1b 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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 327989f..1f9bb6f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/.project
index 98809fd..604f991 100644
--- a/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 42b34af..abdea8f 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.custom.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.custom.model.edit;bundle-version="[1.22.0,1.23.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 5965e03..f976bd0 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/.project
index 8c82cac..7dd513d 100644
--- a/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 6592da6..053ae31 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.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 382096e..14f2d14 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/.project
index 4254999..f32cbdf 100644
--- a/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 d859b19..ae6c63a 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.22.0,1.23.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 0d5a9f2..6b88220 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/.project
index 11dd204..294a0f0 100644
--- a/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 e6a240b..d8cbeb6 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.group.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.group.model.edit;bundle-version="[1.22.0,1.23.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 604438e..cdd4827 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/.project
index 59a5753..aba3725 100644
--- a/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 4561b4b..2978be8 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.groupedgrid.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.groupedgrid.model.edit;bundle-version="[1.22.0,1.23.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 ecaf7fc..2db7f6a 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/.project
index dd436cf..cd9706b 100644
--- a/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 ff17c66..6c596af 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.horizontal.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.horizontal.model.edit;bundle-version="[1.22.0,1.23.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 2e0c14d..d63b045 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/.project
index 58cf32d..9d7447d 100644
--- a/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 b74ee2c..1a7fef5 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.label.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.label.model.edit;bundle-version="[1.22.0,1.23.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 be93340..9e56305 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/.project
index c30c94e..e924355 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 a96cb42..203efea 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 3f5bff4..778bfd3 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/.project
index ab497f0..672c596 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 d0ddfb7..413596d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.22.0,1.23.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 ee7ef16..a6769a8 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.model.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.model.nl_de/.project
index ad88fcb..cbf47d0 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.model.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 ae028d3..099fd4a 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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 0203d56..a023402 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/.project
index 0435a80..aef61d1 100644
--- a/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 6976ac9..a05789d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.22.0,1.23.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 25b6a48..9e4dc36 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/.project
index 7fb9d32..9a1e4f0 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 47df538..72fa8b0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.model.edit;bundle-version="[1.22.0,1.23.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 e30c102..8c504ee 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/.project
index 549e5cc..df38ee7 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 0485abb..88411db 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.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 55e784c..107747d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/.classpath b/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/.classpath
index eca7bdb..8c49c50 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/.classpath
+++ b/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/.classpath
@@ -1,7 +1,5 @@
 <?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/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 b927b96..d0b35ae 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,9 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.22.0,1.23.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.emf.ecp.view.spi.table.nebula.grid.messages;version="1.22.0"
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 ea163ea..ec5637c 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 69eef5a..f816ca7 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,10 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.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
+Export-Package: org.eclipse.emf.ecp.view.spi.table.swt;version="1.22.0"
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 0208a86..57e6eb1 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/.project
index 47086db..3b4e341 100644
--- a/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 1a8e14e..a41f8f6 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.22.0,1.23.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 6a222e3..47559db 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/.project
index 96cc1bb..4ae3ca0 100644
--- a/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 5969430..d21fb4e 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.model.edit;bundle-version="[1.22.0,1.23.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 b2352d8..1044389 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/.project b/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/.project
index fe02527c..6de0460 100644
--- a/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/.project
+++ b/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/.project
@@ -17,7 +17,6 @@
 		</buildCommand>
 	</buildSpec>
 	<natures>
-		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
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 9915497..081ee78 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.vertical.model.edit;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.vertical.model.edit;bundle-version="[1.22.0,1.23.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 f2833be..a99163f 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 56c1842..edcc2ee 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.21.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.22.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 5d0d041..100cf18 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.21.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.22.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 6bf913e..3f638d6 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 2a67482..fe71f13 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.21.0-SNAPSHOT</version>
+	<version>1.22.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 7391db5..55a1760 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.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 5c075a7..2377050 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -169,6 +169,7 @@
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp</module>
 		<module>../../bundles/org.eclipse.emfforms.swt.table</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate</module>
+		<module>../../bundles/org.eclipse.emfforms.swt.reference.table</module>
 		
 		<!--  Stack Feature -->
 		<module>../../bundles/org.eclipse.emf.ecp.view.stack.model</module>
@@ -187,6 +188,7 @@
 		<!-- IDE -->
 		<module>../../bundles/org.eclipse.emfforms.ide.builder</module>
 		<module>../../bundles/org.eclipse.emfforms.ide.ecore.builder</module>
+		<module>../../bundles/org.eclipse.emfforms.ide.preferences</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>
@@ -201,7 +203,8 @@
 		<module>../../bundles/org.eclipse.emf.ecp.view.util.swt.rap</module>	
 		<module>../../bundles/org.eclipse.emf.ecp.rap</module>	
 		<module>../../bundles/org.eclipse.emf.ecp.ui.rap</module>
-		<module>../../bundles/org.eclipse.emf.ecp.view.label.ui.rap</module>		
+		<module>../../bundles/org.eclipse.emf.ecp.view.label.ui.rap</module>	
+		<module>../../bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap</module>	
 		<module>../../bundles/org.eclipse.emf.ecp.workspace.ui.rap</module>
 		
 		
@@ -330,6 +333,7 @@
 		<module>../../bundles/org.eclipse.emfforms.view.multisegment.model.edit</module>
 
 		<!-- Segment IDE Tooling -->
+		<module>../../bundles/org.eclipse.emfforms.ide.view.segments</module>
 		<module>../../bundles/org.eclipse.emfforms.ide.view.indexsegment</module>
 		<module>../../bundles/org.eclipse.emfforms.ide.view.mappingsegment</module>
 		<module>../../bundles/org.eclipse.emfforms.ide.view.multisegment</module>
diff --git a/releng/org.eclipse.emf.ecp.releng.examples/pom.xml b/releng/org.eclipse.emf.ecp.releng.examples/pom.xml
index b788f34..b949bc9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 883faa1..6e0c66c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 fc72ce7..9df492f 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 1ead3ea..d2c3dbf 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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
 	
@@ -102,6 +102,7 @@
 		<module>../../tests/org.eclipse.emf.ecp.ui.view.editor.controls.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.ui.view.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.ui.view.swt.test</module>
+		<module>../../tests/org.eclipse.emfforms.swt.reference.table.test</module>
 		
 		<module>../../tests/org.eclipse.emf.ecp.view.categorization.model.edit.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.categorization.swt.test</module>
@@ -206,6 +207,7 @@
 		<module>../../tests/org.eclipse.emfforms.ide.view.mappingsegment.test</module>
 		<module>../../tests/org.eclipse.emfforms.ide.view.multisegment.test</module>
 		<module>../../tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread</module>
+		<module>../../tests/org.eclipse.emfforms.ide.view.segments.test</module>
 
 		<!-- Bazaar -->
 		<module>../../tests/org.eclipse.emfforms.core.bazaar.tests</module>
@@ -238,6 +240,8 @@
 		<module>../../tests/org.eclipse.emfforms.editor.test</module>
 		
 		<module>../../tests/org.eclipse.emfforms.sdk.integration.test</module>
+
+		<module>../../tests/org.eclipse.emf.ecp.view.model.editor.test</module>
 		
 	</modules>
 	
diff --git a/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml b/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml
index f7dfea2..f3f0439 100644
--- a/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml
+++ b/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml
@@ -47,6 +47,11 @@
       <property name="onCommentFormat" value="// END REUSED CLASS"/>
       <metadata name="com.atlassw.tools.eclipse.checkstyle.comment" value="High Complexity Code Warning Suppression"/>
     </module>
+    <module name="SuppressionCommentFilter">
+      <property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
+      <property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
+      <property name="checkFormat" value="$1"/>
+    </module>
     <module name="PackageName"/>
     <module name="ParameterName"/>
     <module name="StaticVariableName"/>
diff --git a/releng/org.eclipse.emf.ecp.releng/pom.xml b/releng/org.eclipse.emf.ecp.releng/pom.xml
index 83a8922..dbe740f 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.21.0-SNAPSHOT</version>
+	<version>1.22.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.21.0</ecp-version>
+		<ecp-version>1.22.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/aggregateSite.properties b/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
index c2d1cc5..23adc78 100644
--- a/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
+++ b/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
@@ -1 +1 @@
-associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/13x, http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/
\ No newline at end of file
+associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/14x, http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.repository.target/category.xml b/releng/org.eclipse.emf.ecp.repository.target/category.xml
index 04081f2..8c9cffa 100644
--- a/releng/org.eclipse.emf.ecp.repository.target/category.xml
+++ b/releng/org.eclipse.emf.ecp.repository.target/category.xml
@@ -225,7 +225,7 @@
    <feature id="org.eclipse.emf.ecp.view.groupedgrid.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <bundle id="org.eclipse.emf.ecp.view.table.validation" version="1.21.0.qualifier">
+   <bundle id="org.eclipse.emf.ecp.view.table.validation" version="1.22.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 e55482f..2f5a2d5 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 
 	<build>
diff --git a/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties b/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
index aad5302..841f593 100644
--- a/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
+++ b/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
@@ -1 +1 @@
-associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/13x
\ No newline at end of file
+associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/14x
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.repository/pom.xml b/releng/org.eclipse.emf.ecp.repository/pom.xml
index d1871e2..aa7ed22 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 052355a..6479e62 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/eclipse-cbi/targetplatform-dsl -->
-<target name="ECP RAP" sequenceNumber="1553115532">
+<target name="ECP RAP" sequenceNumber="1561974009">
   <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,14 +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.11"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.beans" version="1.3.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.observable" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.property" version="1.5.0.v20150422-0725"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.5"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.mockito.mockito-core-hamcrest-modified" version="1.9.5"/>
@@ -73,7 +66,7 @@
       <unit id="org.eclipse.xpand.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/releases/2019-03"/>
+      <repository location="http://download.eclipse.org/releases/2019-06"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.emf.emfstore.client.ui.rap.feature.feature.group" version="0.0.0"/>
diff --git a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.tpd b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.tpd
index d23db00..b5d52b3 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.tpd
+++ b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.tpd
@@ -4,7 +4,7 @@
 
 include "../org.eclipse.emf.ecp.target.rcp/ecp.tpd"
 
-location "http://download.eclipse.org/releases/2019-03" {
+location "http://download.eclipse.org/releases/2019-06" {
 	org.eclipse.rap.equinox.target.feature.feature.group lazy
 	org.eclipse.rap.feature.feature.group lazy
 	org.eclipse.rap.sdk.feature.feature.group lazy
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 51f0dca..ee68450 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/eclipse-cbi/targetplatform-dsl -->
-<target name="ECP RAP with ECP" sequenceNumber="1555314897">
+<target name="ECP RAP with ECP" sequenceNumber="1564757067">
   <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,14 +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.11"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.beans" version="1.3.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.observable" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.property" version="1.5.0.v20150422-0725"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.5"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.mockito.mockito-core-hamcrest-modified" version="1.9.5"/>
@@ -73,7 +66,7 @@
       <unit id="org.eclipse.xpand.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/releases/2019-03"/>
+      <repository location="http://download.eclipse.org/releases/2019-06"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.emf.emfstore.client.ui.rap.feature.feature.group" version="0.0.0"/>
@@ -89,7 +82,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_121"/>
+      <repository location="http://download.eclipse.org/ecp/releases/releases_target_122"/>
     </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 73595fb..3070a3e 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_121"{
+location "http://download.eclipse.org/ecp/releases/releases_target_122"{
 	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 70c9eab..629e924 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

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

   <artifactId>ecpRAP</artifactId>

-  <version>1.21.0-SNAPSHOT</version>

+  <version>1.22.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 57be0a2..a19dead 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp/ecp.target
+++ b/releng/org.eclipse.emf.ecp.target.rcp/ecp.target
@@ -1,9 +1,6 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde?>
-<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="ECP RCP" sequenceNumber="1553115525">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="ECP RCP" sequenceNumber="1561974009">
   <locations>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="0.0.0"/>
@@ -11,19 +8,12 @@
       <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
       <repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.platform.ide" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.11"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.12"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.beans" version="1.3.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.observable" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.property" version="1.5.0.v20150422-0725"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.5"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>
@@ -32,11 +22,11 @@
       <unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="0.0.0"/>
       <repository location="http://download.eclipse.org/emfstore/releases_19"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.mockito.mockito-core-hamcrest-modified" version="1.9.5"/>
       <repository location="http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.2.4.v201311231704"/>
       <unit id="com.google.gson.source" version="2.2.4.v201311231704"/>
       <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
@@ -54,16 +44,16 @@
       <unit id="org.objenesis.source" version="1.0.0.v201505121915"/>
       <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/repository/"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.emf.edapt.runtime.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.edapt.runtime.feature.source.feature.group" version="0.0.0"/>
       <repository location="http://download.eclipse.org/edapt/releases/14x"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.nebula.widgets.grid.feature.feature.group" version="0.0.0"/>
       <repository location="http://download.eclipse.org/nebula/releases/latest"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
@@ -78,7 +68,7 @@
       <unit id="org.eclipse.xpand.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/releases/2019-03"/>
+      <repository location="http://download.eclipse.org/releases/2019-06"/>
     </location>
   </locations>
-</target>
+</target>
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd b/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd
index 2b6d64d..fb44686 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd
+++ b/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd
@@ -10,18 +10,11 @@
 	org.eclipse.swtbot.feature.group lazy
 }
 
-location "http://download.eclipse.org/eclipse/updates/4.11" {
+location "http://download.eclipse.org/eclipse/updates/4.12" {
 	org.eclipse.equinox.sdk.feature.group lazy
 	org.eclipse.platform.ide lazy
 }
 
-location "http://download.eclipse.org/eclipse/updates/4.5" {
-	org.eclipse.core.databinding [1.5.0.v20150422-0725,1.5.0.v20150422-0725]
-	org.eclipse.core.databinding.beans [1.3.0.v20150422-0725,1.3.0.v20150422-0725]
-	org.eclipse.core.databinding.observable [1.5.0.v20150422-0725,1.5.0.v20150422-0725]
-	org.eclipse.core.databinding.property [1.5.0.v20150422-0725,1.5.0.v20150422-0725]
-}
-
 location "http://download.eclipse.org/emfstore/releases_19" {
 	org.eclipse.emf.emfstore.client.feature.feature.group lazy
 	org.eclipse.emf.emfstore.client.transaction.feature.feature.group lazy
@@ -62,7 +55,7 @@
 	org.eclipse.nebula.widgets.grid.feature.feature.group lazy
 }
 
-location "http://download.eclipse.org/releases/2019-03" {
+location "http://download.eclipse.org/releases/2019-06" {
 	org.eclipse.emf.cdo.sdk.feature.group lazy
 	org.eclipse.emf.sdk.feature.group lazy
 	org.eclipse.emf.transaction.sdk.feature.group lazy
diff --git a/releng/org.eclipse.emf.ecp.target.rcp/pom.xml b/releng/org.eclipse.emf.ecp.target.rcp/pom.xml
index 232b381..73e841b29 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.21.0-SNAPSHOT</version>

+    <version>1.22.0-SNAPSHOT</version>

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

   </parent>

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

   <artifactId>ecp</artifactId>

-  <version>1.21.0-SNAPSHOT</version>

+  <version>1.22.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 4a78d7f..0e416bd 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/eclipse-cbi/targetplatform-dsl -->
-<target name="emfforms_spreadsheet" sequenceNumber="1553115543">
+<target name="emfforms_spreadsheet" sequenceNumber="1561974016">
   <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,14 +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.11"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.beans" version="1.3.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.observable" version="1.5.0.v20150422-0725"/>
-      <unit id="org.eclipse.core.databinding.property" version="1.5.0.v20150422-0725"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.5"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="0.0.0"/>
@@ -60,7 +53,7 @@
       <unit id="org.eclipse.xpand.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/releases/2019-03"/>
+      <repository location="http://download.eclipse.org/releases/2019-06"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.apache.commons.codec" version="0.0.0"/>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/current/pom.xml b/tests/ECPQ7Tests/EPPTests/update-site/current/pom.xml
index 1ad4940..fc39645 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/current/pom.xml
+++ b/tests/ECPQ7Tests/EPPTests/update-site/current/pom.xml
@@ -12,7 +12,7 @@
   <packaging>rcpttTest</packaging>
 
 	<properties>
-    <eclipse-name>2019-03</eclipse-name>
+    <eclipse-name>2019-06</eclipse-name>
 	<eclipse-sr>R</eclipse-sr>
   </properties>
   <build>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/previous/pom.xml b/tests/ECPQ7Tests/EPPTests/update-site/previous/pom.xml
index 9dbe854..e9bbe38 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/previous/pom.xml
+++ b/tests/ECPQ7Tests/EPPTests/update-site/previous/pom.xml
@@ -12,8 +12,8 @@
   <packaging>rcpttTest</packaging>
 
   <properties>
-    <eclipse-name>oxygen</eclipse-name>
-	<eclipse-sr>3</eclipse-sr>
+    <eclipse-name>photon</eclipse-name>
+	<eclipse-sr>R</eclipse-sr>
   </properties>
   <build>
   	<plugins>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/EMFFormsGettingStarted.test b/tests/ECPQ7Tests/EPPTests/update-site/project/EMFFormsGettingStarted.test
new file mode 100644
index 0000000..71aa80c
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/EMFFormsGettingStarted.test
@@ -0,0 +1,94 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ZOi4wZ77EeOm87IlbkWrfQ,_Iu0EsS36EeSYRYqCbC6LMQ,_KNHBoKPJEemYVp7Ch3g4pw
+Element-Name: EMFFormsGettingStarted
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _wUBCcKQlEem4x7OCJoKa3w
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/15/19 12:17 PM
+Testcase-Type: ecl
+
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+MiH-Example-Model
+get-view "Project Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model/model/task.ecore" | get-menu 
+    -path "EMF Forms/Create View Model Project" | click
+with [get-window "New View Model Project"] {
+    get-button "Next >" | click
+    get-tree | select User
+    get-button Finish | click
+}
+with [get-editor "User.view" | get-tree] {
+    select "User/Control tasks" "User/Control email" "User/Control dateOfBirth" "User/Control nationality" "User/Control heigth" "User/Control weight" "User/Control timeOfRegistration" "User/Control active" "User/Control gender" "User/Control lastName" "User/Control firstName"
+    get-menu -path Delete | click
+    select User | get-menu -path "Generate Controls" | click
+}
+with [get-window -class WizardDialog] {
+    get-button "Select All" | click
+    get-button Finish | click
+}
+with [get-editor "User.view"] {
+    with [get-tree] {
+        select User | get-menu -path HorizontalLayout | click
+        select "User/HorizontalLayout" | get-menu -path Group | click
+        select "User/HorizontalLayout" | get-menu -path Group | click
+        select "User/HorizontalLayout/Group"
+    }
+    get-editbox -after [get-label Name] | set-text Primary
+    get-tree | select [get-item -path "User/HorizontalLayout" | get-item -path Group]
+    with [get-editbox -after [get-label Name]] {
+        set-text Secondary
+        set-focus
+    }
+    with [get-tree] {
+        select "User/Control email" "User/Control dateOfBirth" "User/Control gender" "User/Control lastName" "User/Control firstName"
+        get-item -path "User/Control dateOfBirth" | drag-start 37 16
+        get-item -path "User/Control email" | drag-enter 37 4 -detail move
+        get-item -path "User/Control email" | drag-over 38 17 -detail move
+        drag-over 88 277 -detail move
+        drag-over 88 300 -detail move
+        get-item -path "User/HorizontalLayout/Group Primary" | drag-over 24 8 -detail move
+        get-item -path "User/Control email" | drag-exit
+        get-item -path "User/HorizontalLayout/Group Primary" | drag-accept 24 8 -detail move
+        drag-set-data
+        get-item -path "User/HorizontalLayout/Group Primary" | drop 24 8 -detail move
+        drag-end -detail move
+        select "User/Control nationality" "User/Control heigth" "User/Control weight" "User/Control timeOfRegistration" "User/Control active"
+        get-item -path "User/Control nationality" | drag-start 58 12
+        get-item -path "User/Control nationality" | drag-enter 58 16 -detail move
+        get-item -path "User/HorizontalLayout/Group Primary" | drag-over 48 19 -detail move
+        get-item -path "User/HorizontalLayout/Group Primary/Control firstName" | drag-over 38 19 -detail move
+        get-item -path "User/HorizontalLayout/Group Primary/Control lastName" | drag-over 39 19 -detail move
+        drag-over 118 277 -detail move
+        drag-over 111 300 -detail move
+        get-item -path "User/HorizontalLayout/Group Primary/Control email" | drag-over 27 21 -detail move
+        get-item -path "User/HorizontalLayout/Group Secondary" | drag-over 33 9 -detail move
+        get-item -path "User/Control nationality" | drag-exit
+        get-item -path "User/HorizontalLayout/Group Secondary" | drag-accept 33 9 -detail move
+        drag-set-data
+        get-item -path "User/HorizontalLayout/Group Secondary" | drop 33 9 -detail move
+        drag-end -detail move
+        select "User/HorizontalLayout"
+        get-item -path "User/HorizontalLayout" | drag-start 6 10
+        get-item -path "User/HorizontalLayout" | drag-enter 6 2 -detail move
+        get-item -path "User/Control tasks" | drag-over 5 10 -detail move
+        get-item -path "User/HorizontalLayout" | drag-exit
+        get-item -path "User/Control tasks" | drag-accept 5 10 -detail move
+        drag-set-data
+        get-item -path "User/Control tasks" | drop 5 10 -detail move
+        drag-end -detail move
+        key-type "M1+s"
+    }
+}
+get-view "EMF Forms Preview" | get-button "Refresh Preview View" | click
+with [get-view "EMF Forms Preview"] {
+    get-group Primary | get-property caption | equals Primary | verify-true
+    get-group Secondary | get-property caption | equals Secondary | verify-true
+    get-control Any -after [get-label "View Editor Preview"] -index 11 | get-property "getChildren().length" | equals 2 
+        | verify-true
+}
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/EPPTestsSuite.suite b/tests/ECPQ7Tests/EPPTests/update-site/project/EPPTestsSuite.suite
index 15996d8..0c3b22e 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.4.0.201810292311
-Save-Time: 11/28/18 4:08 PM
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/19/19 11:14 AM
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8
 Content-Type: text/testcase
@@ -32,5 +32,9 @@
 _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'
+_g8ZkYKPGEemYVp7Ch3g4pw	// kind: 'test' name: 'ViewModelRules' path: 'ViewModelRules.test'
+_o1gAAKS1EemqHtyndiPQqQ	// kind: 'test' name: 'ViewModelRules_nested' path: 'ViewModelRules_nested.test'
+_wk-EcKiXEemAyNs4iWgMTw	// kind: 'test' name: 'EcoreEditor_OpenFromHistory' path: 'EcoreEditor_OpenFromHistory.test'
+_6KV0MKoAEeminf0o9fO9mA	// kind: 'test' name: 'TemplateEditor_reload' path: 'TemplateEditor_reload.test'
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/EcoreEditor_OpenFromHistory.test b/tests/ECPQ7Tests/EPPTests/update-site/project/EcoreEditor_OpenFromHistory.test
new file mode 100644
index 0000000..54bfa00
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/EcoreEditor_OpenFromHistory.test
@@ -0,0 +1,66 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ihvnUC3mEeSwhO5Nwx0hPg,_ZOi4wZ77EeOm87IlbkWrfQ,_2bS8sTNtEeSiS7b7ptZeHw
+Element-Name: EcoreEditor_OpenFromHistory
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _wk-EcKiXEemAyNs4iWgMTw
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/18/19 2:03 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+Bug 541190:
+Tests that the Ecore Editor (and thereby indirectly the Generic Editor) are capable of opening a model which is not present as a file in the workspace but only as a revision in the history.
+Thereby, verify that the editor is in read-only mode because the opened revision can not be persisted.
+------=_.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 "com.eclipsesource.makeithappen.model/model/task.ecore" | get-menu 
+    -path "Open With/Ecore Editor" | click
+get-editor "task.ecore" | get-tree 
+    | select "platform:\\/resource\\/com.eclipsesource.makeithappen.model\\/model\\/task.ecore/task" | get-menu 
+    -path EEnum | click
+with [get-window "Create new EEnum"] {
+    get-editbox -after [get-label Name] | set-text V1
+    get-button OK | click
+}
+get-editor "task.ecore" | get-tree | get-item "platform:\\/resource\\/com.eclipsesource.makeithappen.model\\/model\\/task.ecore/task/V1" | get-menu -path Delete
+get-button "Save (M1+S)" | click
+with [get-editor "task.ecore" | get-editbox -after [get-label Name]] {
+    set-text V2
+    key-type "TRAVERSE_TAB_NEXT"
+}
+get-button "Save (M1+S)" | click
+get-editor "task.ecore" | close
+
+// Open second latest revision (with enum V1)
+get-view "Project Explorer" | get-tree | select "com.eclipsesource.makeithappen.model/model/task.ecore" | get-menu 
+    -path "Team/Show Local History" | click
+get-view History | get-tree | select [get-item -path ".*" -index 1] | get-menu 
+    -path "Open With/Ecore Editor" | click
+
+// verify read-only in detail
+get-editor "task.ecore" | get-tree | select "file:\\/com.eclipsesource.makeithappen.model\\/model\\/task.ecore/task/V1"
+get-editor "task.ecore" | get-editbox -after [get-label Name] | get-property enablement | equals false | verify-true
+
+// verify no context menu by example: delete, cut, copy actions
+with [get-editor "task.ecore" | get-tree | get-item "file:\\/com.eclipsesource.makeithappen.model\\/model\\/task.ecore/task/V1"] {
+	verify-error { get-menu -path Delete }
+	verify-error { get-menu -path Cut }
+	verify-error { get-menu -path Copy }
+}
+
+// verify that the toolbar buttons are not shown
+with [get-editor "task.ecore"] {
+	verify-error { get-button "Load Ecore" }
+	verify-error { get-button "Generate All" }
+}
+
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/GenerateControls.test b/tests/ECPQ7Tests/EPPTests/update-site/project/GenerateControls.test
index 2ff64bf..0fd786b 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/GenerateControls.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/GenerateControls.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _5muW4DNtEeSiS7b7ptZeHw
-Runtime-Version: 1.5.4.201412181238
-Save-Time: 9/15/15 10:31 AM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/3/19 9:39 AM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -21,9 +21,7 @@
     click
 }
 get-editor "User.view" | get-tree | select View | get-menu "Generate Controls" | click
-with [get-window -class SelectAttributesDialog] {
-    get-tree | select User
-    get-button "Next >" | click
+with [get-window -class WizardDialog] {
     with [get-table] {
         get-item "firstName : EString" | check
         get-item "lastName : EString" | check
@@ -39,12 +37,9 @@
 }
 
 get-editor "User.view" | get-tree | select View | get-menu "Generate Controls" | click
-with [get-window -class SelectAttributesDialog] {
-    get-tree | select User
-    get-button "Next >" | click
-	get-button "Show only unreferenced Attributes?" | check
-}
-with [get-window -class SelectAttributesDialog | get-table] {
+
+get-window -class WizardDialog | get-button "Show only unreferenced Attributes?" | check
+with [get-window -class WizardDialog | get-table] {
     get-property "getItems().length" | equals 8 | verify-true
     get-property "getItems().TableItem[0].getText()" | equals "active : EBoolean" | verify-true
     get-property "getItems().TableItem[1].getText()" | equals "timeOfRegistration : EDate" | verify-true
@@ -55,8 +50,8 @@
     get-property "getItems().TableItem[6].getText()" | equals "email : EString" | verify-true
     get-property "getItems().TableItem[7].getText()" | equals "tasks : Task" | verify-true
 }
-get-window -class SelectAttributesDialog | get-button "Select All" | click
-with [get-window -class SelectAttributesDialog | get-table] {
+get-window -class WizardDialog | get-button "Select All" | click
+with [get-window -class WizardDialog | get-table] {
     get-property itemCount | equals 8 | verify-true
     get-property "getItems().TableItem[0].getChecked()" | equals true | verify-true
     get-property "getItems().TableItem[1].getChecked()" | equals true | verify-true
@@ -67,8 +62,8 @@
     get-property "getItems().TableItem[6].getChecked()" | equals true | verify-true
     get-property "getItems().TableItem[7].getChecked()" | equals true | verify-true
 }
-get-window -class SelectAttributesDialog | get-button "Deselect All" | click
-with [get-window -class SelectAttributesDialog | get-table] {
+get-window -class WizardDialog | get-button "Deselect All" | click
+with [get-window -class WizardDialog | get-table] {
     get-property "getItems().length" | equals 8 | verify-true
     get-property "getItems().TableItem[0].getChecked()" | equals false | verify-true
     get-property "getItems().TableItem[1].getChecked()" | equals false | verify-true
@@ -79,7 +74,7 @@
     get-property "getItems().TableItem[6].getChecked()" | equals false | verify-true
     get-property "getItems().TableItem[7].getChecked()" | equals false | verify-true
 }
-with [get-window -class SelectAttributesDialog] {
+with [get-window -class WizardDialog] {
     get-button "Select All" | click
     get-button Finish | click
 }
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/GettingStarted.test b/tests/ECPQ7Tests/EPPTests/update-site/project/GettingStarted.test
index 3d8b57f..7e7859a 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/GettingStarted.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/GettingStarted.test
@@ -7,7 +7,7 @@
 External-Reference: 
 Id: _lx7aYE_YEeWlOMw7vcjT4A
 Runtime-Version: 2.4.2.201905052359
-Save-Time: 5/6/19 3:11 PM
+Save-Time: 7/3/19 10:51 AM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -111,9 +111,7 @@
     get-menu Delete | click
     select User | get-menu "Generate Controls" | click
 }
-with [get-window -class SelectAttributesDialog] {
-    get-tree | select User
-    get-button "Next >" | click
+with [get-window -class WizardDialog] {
 	get-table | get-property itemCount | equals 11 | verify-true
     with [get-table] {
         get-item "firstName : EString" | check
@@ -182,9 +180,7 @@
 }
 get-editor "User.view" | get-tree | get-item User | get-property caption | equals User | verify-true
 get-editor "User.view" | get-tree | select User | get-menu "Generate Controls" | click
-with [get-window -class SelectAttributesDialog] {
-    get-tree | select User
-    get-button "Next >" | click
+with [get-window -class WizardDialog] {
     get-button "Select All" | click
     get-button Finish | click
 }
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/ImportMakeItHappen.ctx b/tests/ECPQ7Tests/EPPTests/update-site/project/ImportMakeItHappen.ctx
new file mode 100644
index 0000000..357d67b
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/ImportMakeItHappen.ctx
@@ -0,0 +1,32 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Context-Type: org.eclipse.rcptt.ctx.ecl
+Element-Name: ImportMakeItHappen
+Element-Type: context
+Element-Version: 2.0
+Id: _KNHBoKPJEemYVp7Ch3g4pw
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/13/19 10:03 AM
+
+------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998
+Content-Type: text/ecl
+Entry-Name: .ecl.context
+
+proc "MiH-View-Model" {
+	get-menu -path "File/New/Example..." | click
+	with [get-window "New Example"] {
+	    get-tree | select "EMF Forms/Make it happen: view model"
+	    get-button "Next >" | click
+	    get-button Finish | click
+	}
+}
+
+proc "MiH-Example-Model" {
+	get-menu -path "File/New/Example..." | click
+	with [get-window "New Example"] {
+	    get-tree | select "EMF Forms/Make it happen: example model"
+	    get-button "Next >" | click
+	    get-button Finish | click
+	}
+}
+------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test b/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test
index 30da33b..5d0f389 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _jOkp0CpNEem3i-Gw7uP7Ew
-Runtime-Version: 2.4.0.201902270059
-Save-Time: 2/27/19 10:31 AM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/3/19 9:46 AM
 Testcase-Type: ecl
 
 ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
@@ -56,9 +56,7 @@
     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-window -class WizardDialog] {
     with [get-table] {
         get-item -path "firstName : EString" | check
         select "firstName : EString" | get-item -path "lastName : EString" | check
@@ -72,9 +70,7 @@
 }
 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
+with [get-window -class WizardDialog] {
     get-button "Select All" | click
     get-button Finish | click
 }
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/TemplateEditor_OpenFromHistory.test b/tests/ECPQ7Tests/EPPTests/update-site/project/TemplateEditor_OpenFromHistory.test
new file mode 100644
index 0000000..b0edb24
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/TemplateEditor_OpenFromHistory.test
@@ -0,0 +1,61 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ihvnUC3mEeSwhO5Nwx0hPg,_D4Pj4C3lEeSwhO5Nwx0hPg,_2bS8sTNtEeSiS7b7ptZeHw,_DD4ysDmlEeiV5MMKft7xVA
+Element-Name: TemplateEditor_OpenFromHistory
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _-p_yMKoHEeminf0o9fO9mA
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/19/19 2:44 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+Bug 541191
+Tests that the template editor allows opening a revision from the local history.
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+with [get-editor "new_file.template"] {
+    get-tree | select "View Template" | get-menu -path Style | click
+    get-button "Create and link new Style Property" | click
+}
+with [get-window "New Reference Element"] {
+    get-tree | select "mandatory/MandatoryStyleProperty"
+    get-button Finish | click
+}
+with [get-window MandatoryStyleProperty] {
+    get-editbox -after [get-label "Mandatory Marker"] | set-text x
+    get-button OK | click
+}
+get-button "Save (M1+S)" | click
+get-view "Project Explorer" | click
+get-editor "new_file.template" | close
+// Create 2nd revision with text editor as this currently doesn't work properly with template editor
+get-view "Project Explorer" | get-tree | select "com.eclipsesource.makeithappen.model/new_file.template" 
+    | select "com.eclipsesource.makeithappen.model/new_file.template" | get-menu -path "Open With/Text Editor" | click
+with [get-editor "new_file.template" | get-text-viewer] {
+    set-caret-pos 4 124
+    select-range 4 125 4 124
+    type-text y
+    key-type "M1+s"
+}
+get-view "Project Explorer" | click
+get-editor "new_file.template" | close
+get-view "Project Explorer" | get-tree | select "com.eclipsesource.makeithappen.model/new_file.template" | get-menu 
+    -path "Team/Show Local History" | click
+get-view History | get-tree | select [get-item -path ".*" -index 1] | get-menu 
+    -path "Open With/Template Model Editor" | click
+with [get-editor "new_file.template"] {
+	get-tree | select "View Template/Style/Mandatory Style true"
+    with [get-editbox -after [get-label "Mandatory Marker"]] {
+    	get-property enablement | equals false | verify-true
+    	get-property text | equals x | verify-true
+    }
+}
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/TemplateEditor_Reload.test b/tests/ECPQ7Tests/EPPTests/update-site/project/TemplateEditor_Reload.test
new file mode 100644
index 0000000..58db264
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/TemplateEditor_Reload.test
@@ -0,0 +1,71 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ihvnUC3mEeSwhO5Nwx0hPg,_D4Pj4C3lEeSwhO5Nwx0hPg,_2bS8sTNtEeSiS7b7ptZeHw,_DD4ysDmlEeiV5MMKft7xVA
+Element-Name: TemplateEditor_Reload
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _6KV0MKoAEeminf0o9fO9mA
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/19/19 2:44 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+Tests that the View Template editor correctly reloads the model  if it is changed in the background while the editor is open.
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+with [get-editor "new_file.template"] {
+    get-tree | select "View Template" | get-menu -path Style | click
+    get-button "Create and link new Style Property" | click
+}
+with [get-window "New Reference Element"] {
+    get-tree | select "mandatory/MandatoryStyleProperty"
+    get-button Finish | click
+}
+with [get-window MandatoryStyleProperty] {
+    get-editbox -after [get-label "Mandatory Marker"] | set-text x
+    get-button OK | click
+}
+get-button "Save (M1+S)" | click
+// Edit template file in a text editor while the template editor is open and verify its reloaded correctly
+get-view "Project Explorer" | get-tree | select "com.eclipsesource.makeithappen.model/new_file.template" 
+    | select "com.eclipsesource.makeithappen.model/new_file.template" | get-menu -path "Open With/Text Editor" | click
+with [get-editor "new_file.template" -type "Text Editor" | get-text-viewer] {
+    select-range 4 124 4 125
+    type-text y
+}
+get-button "Save (M1+S)" | click
+with [get-editor "new_file.template" -type "Template Model Editor"] {
+    click
+    get-tree | select "View Template/Style/Mandatory Style true"
+	get-editbox -after [get-label "Mandatory Marker"] | get-property text | equals y | verify-true
+}
+
+// Make template editor dirty and then edit the file in the background in the text editor
+with [get-editor "new_file.template" -type "Template Model Editor" | get-editbox 
+    -after [get-label "Mandatory Marker"]] {
+    set-text xy
+    key-type "TRAVERSE_TAB_NEXT"
+}
+with [get-editor "new_file.template" -type "Text Editor"] {
+    click
+    with [get-text-viewer] {
+        key-type BackSpace
+        type-text z
+        key-type "M1+s"
+    }
+}
+// discard changes in template editor and verify that editor content is correctly reloaded
+get-editor "new_file.template" -type "Text Editor" | close
+get-window "File Changed" | get-button Yes | click
+with [get-editor "new_file.template" -type "Template Model Editor"] {
+    get-tree | select "View Template/Style/Mandatory Style true"
+	get-editbox -after [get-label "Mandatory Marker"] | get-property text | equals z | verify-true
+}
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
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
index 192fb93..03fdc76 100644
--- 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
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _W4UMAPMcEeik6oWCgIASMQ
-Runtime-Version: 2.4.0.201810292311
-Save-Time: 11/28/18 4:04 PM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/3/19 9:59 AM
 Testcase-Type: ecl
 
 ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
@@ -41,14 +41,8 @@
 
 // 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-window -class WizardDialog | get-table | get-property itemCount | equals 2 | verify-true
+with [get-window -class WizardDialog] {
     get-button "Select All" | click
     get-button Finish | click
 }
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_openFromHistory.test b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_openFromHistory.test
new file mode 100644
index 0000000..8ff4986
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_openFromHistory.test
@@ -0,0 +1,49 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ihvnUC3mEeSwhO5Nwx0hPg,_D4Pj4C3lEeSwhO5Nwx0hPg
+Element-Name: ViewEditor_openFromHistory
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _7uz1YLIIEemg6Z8M9T7uKw
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/29/19 5:01 PM
+Testcase-Type: ecl
+
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+// Edit view model to require migration
+get-view "Project Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view" 
+    | get-menu -path "Open With/Text Editor" | click
+with [get-editor "User.view" | get-text-viewer] {
+    set-caret-pos 2 463
+    key-type Del
+    type-text 7
+    key-type "M1+s"
+}
+
+// Edit back for current revision
+with [get-editor "User.view" | get-text-viewer] {
+    set-caret-pos 2 465
+    set-caret-pos 2 463
+    key-type Del
+    type-text 8
+    key-type "M1+s"
+}
+
+// Open history revision, migrate it, and check that it's readonly
+get-editor "User.view" | close
+get-view "Project Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view" 
+    | get-menu -path "Team/Show Local History" | click
+get-view History | get-tree | select [get-item -path ".*" -index 1] | get-menu 
+    -path "Open With/View Model Editor" | click
+get-window "Perform migration to the latest view model version?" | get-button Yes | click
+get-window "Migrate view models from workspace" | get-button No | click
+get-editor "User.view" | get-editbox -after [get-label Name] | get-property enablement | equals false | 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 e045107..b9302d9 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.4.0.201901180020
-Save-Time: 1/18/19 3:24 PM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/1/19 3:31 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -294,7 +294,7 @@
 
 // Check that the generate controls action exists and opens a dialog
 get-editor "User.view" | get-tree | select View | get-menu -path "Generate Controls" | click
-get-window -class SelectAttributesDialog | get-button Cancel | click
+get-window -class WizardDialog | get-button Cancel | click
 
 get-editor "User.view" | get-tree | select View | get-menu -path Control | click
 with [get-editor "User.view" | get-tree] {
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/ViewModelRules.test b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewModelRules.test
new file mode 100644
index 0000000..6e88265
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewModelRules.test
@@ -0,0 +1,138 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _D4Pj4C3lEeSwhO5Nwx0hPg,_Iu0EsS36EeSYRYqCbC6LMQ,_KNHBoKPJEemYVp7Ch3g4pw
+Element-Name: ViewModelRules
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _g8ZkYKPGEemYVp7Ch3g4pw
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/11/19 11:54 PM
+Testcase-Type: ecl
+
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+MiH-View-Model
+get-view "Project Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view" 
+    | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view" | get-menu 
+    -path "Open With/View Model Editor" | click
+get-editor "User.view" | get-tree | select View | get-menu -path "Generate Controls" | click
+with [get-window -class WizardDialog] {
+    get-button "Select All" | click
+    get-button Finish | click
+}
+with [get-editor "User.view"] {
+    with [get-tree] {
+        select "View/Control lastName" | get-menu -path "Enable Rule" | click
+        select "View/Control lastName/Enable Rule false" | get-menu -path "Or Condition" | click
+        select "View/Control lastName/Enable Rule false/Or Condition" | get-menu -path "And Condition" | click
+        select "View/Control lastName/Enable Rule false/Or Condition/And Condition" | get-menu -path "Leaf Condition" 
+            | click
+        select "View/Control lastName/Enable Rule false/Or Condition/And Condition/Leaf Condition"
+    }
+    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 "firstName : EString"
+        get-button OK | click
+    }
+    get-button Finish | click
+}
+get-editor "User.view" | get-button "Select Object" | click
+with [get-window "Insert the value"] {
+    get-editbox 
+        -after [get-label "The value must be parseable by the String class. For a double value please use the #.# format. For boolean values 'true' or 'false'."] 
+        | set-text foo
+    get-button OK | click
+}
+get-view "EMF Forms Preview" | get-button "Refresh Preview View" | click
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals false 
+    | verify-true
+with [get-view "EMF Forms Preview" | get-editbox -after [get-label "First Name"]] {
+    set-text foo
+    key-type "TRAVERSE_TAB_NEXT"
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals true 
+    | verify-true
+with [get-editor "User.view"] {
+    with [get-tree] {
+        select "View/Control lastName/Enable Rule false/Or Condition/And Condition" | get-menu -path "Leaf Condition" 
+            | click
+        select "View/Control lastName/Enable Rule false/Or Condition/And Condition/Leaf Condition"
+    }
+    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 "gender : Gender"
+        get-button OK | click
+    }
+    get-button Finish | click
+}
+get-editor "User.view" | get-button "Select Object" | click
+with [get-window "Select a value"] {
+    get-table | select Male
+    get-button OK | click
+}
+with [get-view "EMF Forms Preview"] {
+    get-button "Refresh Preview View" | click
+    with [get-editbox -after [get-label "First Name"]] {
+        set-text fo
+        key-type "TRAVERSE_TAB_NEXT"
+    }
+    get-editbox -after [get-label "Last Name*"] | set-focus
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals false 
+    | verify-true
+with [get-view "EMF Forms Preview"] {
+    get-combo -after [get-label Gender] | select Female
+    with [get-editbox -after [get-label "First Name"]] {
+        set-text foo
+        key-type "TRAVERSE_TAB_NEXT"
+    }
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals false 
+    | verify-true
+get-view "EMF Forms Preview" | get-combo -after [get-label Gender] | select Male
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals true 
+    | verify-true
+with [get-editor "User.view" | get-tree] {
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition/And Condition/Leaf Condition Male" 
+        | drag-start 4 7
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition/And Condition/Leaf Condition Male" 
+        | drag-enter 5 0 -detail move
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition/And Condition/Leaf Condition foo" 
+        | drag-over 5 0 -detail move
+    drag-over 114 116 -detail move
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition" | drag-over 32 9 -detail move
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition/And Condition/Leaf Condition Male" | drag-exit
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition" | drag-accept 32 9 -detail move
+    drag-set-data
+    get-item -path "View/Control lastName/Enable Rule false/Or Condition" | drop 32 9 -detail move
+    drag-end -detail move
+}
+get-view "EMF Forms Preview" | get-button "Refresh Preview View" | click
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals true 
+    | verify-true
+get-view "EMF Forms Preview" | get-combo -after [get-label Gender] | select Female
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals true 
+    | verify-true
+with [get-view "EMF Forms Preview"] {
+    with [get-editbox -after [get-label "First Name"]] {
+        set-text fo
+        key-type "TRAVERSE_TAB_NEXT"
+    }
+    get-editbox -after [get-label "Last Name*"] | set-focus
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label "Last Name*"] | get-property enablement | equals false 
+    | verify-true
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/ViewModelRules_nested.test b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewModelRules_nested.test
new file mode 100644
index 0000000..c6c39ee
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewModelRules_nested.test
@@ -0,0 +1,152 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _D4Pj4C3lEeSwhO5Nwx0hPg,_Iu0EsS36EeSYRYqCbC6LMQ,_KNHBoKPJEemYVp7Ch3g4pw
+Element-Name: ViewModelRules_nested
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _o1gAAKS1EemqHtyndiPQqQ
+Runtime-Version: 2.5.0.201907120000
+Save-Time: 7/12/19 5:23 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+Smoke test for nested conditions contained in an IterateCondition
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+// SETUP VIEW MODEL
+MiH-View-Model
+get-view "Project Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/UserGroup.view"
+	| get-menu -path "Open With/View Model Editor" | click
+
+
+get-editor "UserGroup.view" | get-tree | select View | get-menu -path "Generate Controls" | click
+with [get-window -class WizardDialog] {
+	get-table | get-item -path "name : EString" | check
+	get-button Finish | click
+}
+
+// Setup table with objects to iterate over
+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
+}
+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
+}
+with [get-editor "UserGroup.view"] {
+	get-tree | select "View/TableControl" | get-menu -path "Generate Columns" | click
+	get-table | select email dateOfBirth nationality heigth weight timeOfRegistration active gender lastName
+	with [get-button Remove] {
+		click
+		key-type "M1+s"
+	}
+}
+
+// enable rule with iterate condition
+with [get-editor "UserGroup.view"] {
+	with [get-tree] {
+		select "View/Control name" | get-menu -path "Enable Rule" | click
+		select "View/Control name/Enable Rule false" | get-menu -path "Iterate Condition" | click
+		select "View/Control name/Enable Rule false/Iterate Condition all"
+	}
+	get-combo -after [get-label "Quantifier*"] | select Any
+	get-button "Create and link new Item 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
+}
+
+// nested leaf condition
+with [get-editor "UserGroup.view"] {
+	get-tree | select "View/Control name/Enable Rule false/Iterate Condition any" | get-menu -path "Leaf Condition" | click
+	get-tree | select "View/Control name/Enable Rule false/Iterate Condition any/Leaf Condition"
+	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 "firstName : EString"
+		get-button OK | click
+	}
+	get-button Finish | click
+}
+get-editor "UserGroup.view" | get-button "Select Object" | click
+with [get-window "Insert the value"] {
+	with [get-editbox 
+		-after [get-label "The value must be parseable by the String class. For a double value please use the #.# format. For boolean values 'true' or 'false'."]] {
+		set-text John
+	}
+	get-button OK | click
+}
+
+// ----------------------
+// VERIFY BEHAVIOR
+//-----------------------
+get-view "EMF Forms Preview" | get-button "Refresh Preview View" | click
+get-view "EMF Forms Preview" | get-editbox -after [get-label Name] | get-property enablement | equals false 
+	| verify-true
+get-view "EMF Forms Preview" | get-button "Add an instance of" | click
+get-view "EMF Forms Preview" | get-editbox -after [get-label Name] | get-property enablement | equals false 
+	| verify-true
+with [get-view "EMF Forms Preview" | get-table] {
+	select "" | activate-cell-edit -column 1 -type MouseClickSelection
+	with [get-editbox] {
+		set-text John
+		key-type Enter
+	}
+	apply-cell-edit -deactivate
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label Name] | get-property enablement | equals true | verify-true
+with [get-view "EMF Forms Preview"] {
+	get-button "Add an instance of" | click
+	with [get-table] {
+		select [get-item -path "" -index 1] | activate-cell-edit -column 1 -type MouseClickSelection
+		with [get-editbox] {
+			set-text Sepp
+			key-type Enter
+		}
+		apply-cell-edit -deactivate
+	}
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label Name] | get-property enablement | equals true | verify-true
+with [get-view "EMF Forms Preview" | get-table] {
+	select John -column "First Name" | activate-cell-edit -column 1 -type MouseClickSelection
+	with [get-editbox] {
+		set-text Jo
+		key-type Enter
+	}
+	apply-cell-edit -deactivate
+}
+get-view "EMF Forms Preview" | get-editbox -after [get-label Name] | get-property enablement | equals false 
+	| verify-true
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/NonEPPTests/Editor/Editor.suite b/tests/ECPQ7Tests/NonEPPTests/Editor/Editor.suite
index a1796bd..c8c6332 100644
--- a/tests/ECPQ7Tests/NonEPPTests/Editor/Editor.suite
+++ b/tests/ECPQ7Tests/NonEPPTests/Editor/Editor.suite
@@ -4,33 +4,32 @@
 Element-Type: testsuite
 Element-Version: 2.0
 Id: _r0qowHHTEeKndsdNMEr_UQ
-Runtime-Version: 2.1.0.201606221726
-Save-Time: 9/5/16 2:59 PM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/11/19 5:16 PM
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8
 Content-Type: text/testcase
 Entry-Name: testcase-items
 
-_tM_gQDy7EeO8kN1jLMK8wg	// kind: 'test' name: 'BigDecimal' path: 'BigDecimal.test'
-_nU15wDy-EeO8kN1jLMK8wg	// kind: 'test' name: 'BigInteger' path: 'BigInteger.test'
-_aw0FMHHeEeKndsdNMEr_UQ	// kind: 'test' name: 'Boolean' path: 'Boolean.test'
-_2jgNMHHXEeKndsdNMEr_UQ	// kind: 'test' name: 'Date' path: 'Date.test'
-_k5jCAHHZEeKndsdNMEr_UQ	// kind: 'test' name: 'Double' path: 'Double.test'
-_MhtJ4HHYEeKndsdNMEr_UQ	// kind: 'test' name: 'Enum' path: 'Enum.test'
-_1mLz4HHYEeKndsdNMEr_UQ	// kind: 'test' name: 'Int' path: 'Int.test'
-_yMGr8HHTEeKndsdNMEr_UQ	// kind: 'test' name: 'Link' path: 'Link.test'
-_LsZZEDyoEeOyfvx0Xny3Ig	// kind: 'test' name: 'NewDate' path: 'NewDate.test'
-_axAiYDyVEeOk_dMIOzb4CA	// kind: 'test' name: 'NewDouble' path: 'NewDouble.test'
-_QSZfMHHWEeKndsdNMEr_UQ	// kind: 'test' name: 'String' path: 'String.test'
-_6xi7QQpDEeOJrN9cdzAxHQ	// kind: 'test' name: 'ValidationDecoratorInEditor' path: 'ValidationDecoratorInEditor.test'
-__Gg_AIpgEeK80-dAVHg-DA	// kind: 'suite' name: 'TableSuite' path: 'Table/TableSuite.suite'
-_7xT6QXXGEeK2tZkPdpUavQ	// kind: 'test' name: 'MultiBoolean' path: 'Multicontrols/MultiBoolean.test'
-_fytq8HXSEeK2tZkPdpUavQ	// kind: 'test' name: 'MultiDouble' path: 'Multicontrols/MultiDouble.test'
-_YAH8kHXLEeK2tZkPdpUavQ	// kind: 'test' name: 'MultiEnum' path: 'Multicontrols/MultiEnum.test'
-_YJbUcHXJEeK2tZkPdpUavQ	// kind: 'test' name: 'MultiInt' path: 'Multicontrols/MultiInt.test'
-_7fNEUHXLEeK2tZkPdpUavQ	// kind: 'test' name: 'MultiReference' path: 'Multicontrols/MultiReference.test'
-_l3nLwHHkEeKndsdNMEr_UQ	// kind: 'test' name: 'MultiString' path: 'Multicontrols/MultiString.test'
-_HzFpMGs4EeSUs_kOwABuHQ	// kind: 'test' name: 'TreeMasterDetailContextMenuFeatureMap' path: 'TreeMasterDetailContextMenuFeatureMap.test'
-_GYZaMHlAEeO9Ja8zvRhhOQ	// kind: 'test' name: 'XMLDate' path: 'XMLDate.test'
+_tM_gQDy7EeO8kN1jLMK8wg	//
+_nU15wDy-EeO8kN1jLMK8wg	//
+_aw0FMHHeEeKndsdNMEr_UQ	//
+_2jgNMHHXEeKndsdNMEr_UQ	//
+_k5jCAHHZEeKndsdNMEr_UQ	//
+_MhtJ4HHYEeKndsdNMEr_UQ	//
+_1mLz4HHYEeKndsdNMEr_UQ	//
+_yMGr8HHTEeKndsdNMEr_UQ	//
+_LsZZEDyoEeOyfvx0Xny3Ig	//
+_axAiYDyVEeOk_dMIOzb4CA	//
+_QSZfMHHWEeKndsdNMEr_UQ	//
+__Gg_AIpgEeK80-dAVHg-DA	//
+_7xT6QXXGEeK2tZkPdpUavQ	//
+_fytq8HXSEeK2tZkPdpUavQ	//
+_YAH8kHXLEeK2tZkPdpUavQ	//
+_YJbUcHXJEeK2tZkPdpUavQ	//
+_7fNEUHXLEeK2tZkPdpUavQ	//
+_l3nLwHHkEeKndsdNMEr_UQ	//
+_HzFpMGs4EeSUs_kOwABuHQ	//
+_GYZaMHlAEeO9Ja8zvRhhOQ	//
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8--
diff --git a/tests/ECPQ7Tests/NonEPPTests/Editor/Table/DetailEditingPane.test b/tests/ECPQ7Tests/NonEPPTests/Editor/Table/DetailEditingPane.test
deleted file mode 100644
index 16680cd..0000000
--- a/tests/ECPQ7Tests/NonEPPTests/Editor/Table/DetailEditingPane.test
+++ /dev/null
@@ -1,166 +0,0 @@
---- RCPTT testcase ---
-Format-Version: 1.0
-Contexts: _mY5uUKEgEeKX8e34E6tWIg,_rr2EEFpSEeKcnaHGSt8OwA,_IuFcgFpZEeKcnaHGSt8OwA,_f3qEUVpSEeKcnaHGSt8OwA,_fQ0PgDsqEeOHj9Cw0T_k4Q
-Element-Name: DetailEditingPane
-Element-Type: testcase
-Element-Version: 3.0
-External-Reference: 
-Id: _50-KoCeuEeSaN-fwc2C_0w
-Runtime-Version: 2.4.2.201905052359
-Save-Time: 5/7/19 12:53 PM
-Testcase-Type: ecl
-
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
-Content-Type: text/ecl
-Entry-Name: .content
-
-try {
-	get-editor View | get-button "Link Root EClass" | click
-	with [get-window "Select an EClass."] {
-	    get-tree | select "bowling/Fan \\[org.eclipse.emf.emfstore.bowling.Fan\\]"
-	    get-button OK | click
-	}
-	with [get-view "Model Explorer" | get-tree] {
-	    select "Project/View" | get-menu TableControl | click
-	}
-	get-editor TableControl | get-button "Create and link new Domain Model Reference" | click
-	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 "fanMerchandise : Merchandise"
-	            get-button OK | click
-	        }
-	        get-button Finish | click
-	    }
-	    get-button Finish | click
-	}
-	get-editor TableControl | get-button Add | 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 "name : EString"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	get-editor TableControl | get-button Add | 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 "price : EBigDecimal"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	get-editor TableControl | get-button Add | 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 "serialNumber : EBigInteger"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	get-editor TableControl | get-combo -after [get-label "Detail Editing*"] | select WithPanel
-	with [get-view "Model Explorer"] {
-	    get-tree | select "Project/View/TableControl"
-	    get-button "Save Project" | click
-	    get-tree | select "Project/View/TableControl" | get-menu "Create new project" | click
-	}
-	with [get-window "Create Project"] {
-	    get-editbox -after [get-label "Project Name:"] | set-text test
-	    get-button Finish | click
-	}
-	get-view "Model Explorer" | get-tree | select test | get-menu "New Model Element" | click
-	with [get-window "Add new model element"] {
-	    get-editbox -after [get-label Search] | set-text fan
-	    get-tree | select "bowling/Fan"
-	    get-button Finish | click
-	}
-	get-editor Fan | get-control Any -after [get-label "Fan [Fan]"] -index 6 
-	    | get-property "getChildren().Control[1].getStyle()" | contains "BORDER" | verify-true
-	get-editor Fan | get-control Any -after [get-label "Fan [Fan]"] -index 6 
-	    | get-property "getChildren().Control[1].getStyle()" | contains "LEFT_TO_RIGHT" | verify-true
-	with [get-editor Fan] {
-	    with [get-button "Add an instance of Merchandise"] {
-	        click
-	        click
-	    }
-	    with [get-table] {
-	        select "" | activate-cell-edit -column 1
-	        get-editbox | click-text
-	        apply-cell-edit -deactivate
-	    }
-	}
-	with [get-editor Fan] {
-	    get-label Name | get-property caption | equals Name | verify-true
-	    get-label Price | get-property caption | equals Price | verify-true
-	    get-label "Serial Number" | get-property caption | equals "Serial Number" | verify-true
-	}
-	get-editor Fan | get-editbox -after [get-label Name] | set-text merc1
-	get-editor Fan | get-table | get-item merc1 -column Name | get-property "columns[1]" | equals merc1 | verify-true
-	with [get-editor Fan | get-table] {
-	    select merc1 -column Name | activate-cell-edit -column 1
-	    with [get-editbox] {
-	        click-text 6
-	        key-type Left
-	        set-text merch1
-	    }
-	    apply-cell-edit -deactivate
-	}
-	get-editor Fan | get-editbox -after [get-label Name] | get-property text | equals merch1 | verify-true
-	get-editor Fan | get-table | select [get-item "" -index 1]
-	get-editor Fan | get-editbox -after [get-label Name] | get-property text | equals "" | verify-true
-	get-editor Fan | get-table | select merch1 -column Name
-	get-editor Fan | get-control Any -after [get-label "Fan Merchandise"] -index 14 | get-property "getChildren().length" 
-	    | equals 9 | verify-true
-	with [get-editor Fan] {
-	    with [get-table] {
-	        select [get-item "" -index 1] | activate-cell-edit -column 1
-	        get-editbox | click-text
-	        apply-cell-edit -deactivate
-	    }
-	    get-button "Remove the selected Merchandise" | click
-	}
-	get-window "Delete?" | get-button Yes | click
-	get-editor Fan | get-control Any -after [get-label "Fan Merchandise"] -index 11 | get-property "getChildren().length" 
-	    | equals 0 | verify-true
-	get-editor Fan | close
-	
-//	get-view "Model Explorer" | get-tree | select "Project/View/TableControl" | get-menu View | click
-//	get-editor View -index 1 | get-button "Link Root EClass" | click
-//	with [get-window "Select an EClass."] {
-//	    get-tree | select "bowling/Merchandise \\[org.eclipse.emf.emfstore.bowling.Merchandise\\]"
-//	    get-button OK | click
-//	}
-//	get-view "Model Explorer" | get-tree | select "Project/View/TableControl/View" | get-menu "Generate Controls" | click
-//	with [get-window -class SelectAttributesDialog] {
-//	    get-tree | select "Merchandise \\[org.eclipse.emf.emfstore.bowling.Merchandise\\]"
-//	    get-button "Next >" | click
-//	    get-table | get-item "name : EString" | check
-//	    get-button Finish | click
-//	}
-//	with [get-view "Model Explorer"] {
-//	    get-tree | select "Project/View/TableControl"
-//	    get-button "Save Project" | click
-//	}
-	invoke-static -pluginId org.eclipse.emf.ecp.view.model.provider.xmi -className org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager -methodName dispose
-	get-view "Model Explorer" | get-tree | select "test/Fan" | double-click
-	get-editor Fan | get-table | select merch1 -column Name
-	get-editor Fan | get-control Any -after [get-label "Fan Merchandise"] -index 13 | get-property "getChildren().length" | equals 9 | verify-true
-	get-editor Fan | get-editbox -after [get-label Name] | set-text merc1
-	get-editor Fan | get-table | get-item merc1 -column Name | get-property "columns[1]" | equals merc1 | verify-true
-} -finally {
-	get-view "Model Explorer" | get-tree | select "Project/View" | get-menu "Unset Root EClass" | click
-}
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/NonEPPTests/Editor/Table/TableSuite.suite b/tests/ECPQ7Tests/NonEPPTests/Editor/Table/TableSuite.suite
index 2f6e79c..a00a066 100644
--- a/tests/ECPQ7Tests/NonEPPTests/Editor/Table/TableSuite.suite
+++ b/tests/ECPQ7Tests/NonEPPTests/Editor/Table/TableSuite.suite
@@ -4,30 +4,29 @@
 Element-Type: testsuite
 Element-Version: 2.0
 Id: __Gg_AIpgEeK80-dAVHg-DA
-Runtime-Version: 2.1.0.201606221726
-Save-Time: 9/5/16 3:49 PM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/11/19 2:50 PM
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8
 Content-Type: text/testcase
 Entry-Name: testcase-items
 
-_zSJeQIpOEeK80-dAVHg-DA	// kind: 'test' name: 'SetDouble' path: 'SetDouble.test'
-_Mr1VQYpNEeK80-dAVHg-DA	// kind: 'test' name: 'SetString' path: 'SetString.test'
-_b_DD0IpREeK80-dAVHg-DA	// kind: 'test' name: 'SetEMail' path: 'SetEMail.test'
-_ObfJcIpXEeK80-dAVHg-DA	// kind: 'test' name: 'DeleteRows' path: 'DeleteRows.test'
-_cga1EIpdEeK80-dAVHg-DA	// kind: 'test' name: 'SetMultiRef' path: 'SetMultiRef.test'
-_X66MEIf4EeKpyoBptqEfAg	// kind: 'test' name: 'SetInt' path: 'SetInt.test'
-_bYjBUIpNEeK80-dAVHg-DA	// kind: 'test' name: 'SetDate' path: 'SetDate.test'
-_IWxDYIpWEeK80-dAVHg-DA	// kind: 'test' name: 'DeleteRow' path: 'DeleteRow.test'
-_GLHKgIpeEeK80-dAVHg-DA	// kind: 'test' name: 'AddRowAndSetBigInt' path: 'AddRowAndSetBigInt.test'
-_amLggIpeEeK80-dAVHg-DA	// kind: 'test' name: 'SetBigDecimal' path: 'SetBigDecimal.test'
-_aJUTcIpgEeK80-dAVHg-DA	// kind: 'test' name: 'ValidateBigDecimal' path: 'ValidateBigDecimal.test'
-_GW5PoIpREeK80-dAVHg-DA	// kind: 'test' name: 'SetBoolean' path: 'SetBoolean.test'
-_kms5UIpVEeK80-dAVHg-DA	// kind: 'test' name: 'AddRow' path: 'AddRow.test'
-_Uv2qIEYKEeOmh5SOkeuFtw	// kind: 'test' name: 'SetBigInteger' path: 'SetBigInteger.test'
-_s2yJMDsaEeOSoJrMKArUHA	// kind: 'test' name: 'SetEnum' path: 'SetEnum.test'
-_ud-CkEYUEeOmh5SOkeuFtw	// kind: 'test' name: 'MaxBoundReference' path: 'MaxBoundReference.test'
-_gvAuUEYLEeOmh5SOkeuFtw	// kind: 'test' name: 'MinBoundReference' path: 'MinBoundReference.test'
-_50-KoCeuEeSaN-fwc2C_0w	// kind: 'test' name: 'DetailEditingPane' path: 'DetailEditingPane.test'
+_zSJeQIpOEeK80-dAVHg-DA	//
+_Mr1VQYpNEeK80-dAVHg-DA	//
+_b_DD0IpREeK80-dAVHg-DA	//
+_ObfJcIpXEeK80-dAVHg-DA	//
+_cga1EIpdEeK80-dAVHg-DA	//
+_X66MEIf4EeKpyoBptqEfAg	//
+_bYjBUIpNEeK80-dAVHg-DA	//
+_IWxDYIpWEeK80-dAVHg-DA	//
+_GLHKgIpeEeK80-dAVHg-DA	//
+_amLggIpeEeK80-dAVHg-DA	//
+_aJUTcIpgEeK80-dAVHg-DA	//
+_GW5PoIpREeK80-dAVHg-DA	//
+_kms5UIpVEeK80-dAVHg-DA	//
+_Uv2qIEYKEeOmh5SOkeuFtw	//
+_s2yJMDsaEeOSoJrMKArUHA	//
+_ud-CkEYUEeOmh5SOkeuFtw	//
+_gvAuUEYLEeOmh5SOkeuFtw	//
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8--
diff --git a/tests/ECPQ7Tests/NonEPPTests/Editor/ValidationDecoratorInEditor.test b/tests/ECPQ7Tests/NonEPPTests/Editor/ValidationDecoratorInEditor.test
deleted file mode 100644
index 0e2f7f6..0000000
--- a/tests/ECPQ7Tests/NonEPPTests/Editor/ValidationDecoratorInEditor.test
+++ /dev/null
@@ -1,66 +0,0 @@
---- RCPTT testcase ---
-Format-Version: 1.0
-Contexts: _mY5uUKEgEeKX8e34E6tWIg,_rr2EEFpSEeKcnaHGSt8OwA,_f3qEUVpSEeKcnaHGSt8OwA,_IuFcgFpZEeKcnaHGSt8OwA,__UtTgD-XEeK-yuKsz0Lang
-Element-Name: ValidationDecoratorInEditor
-Element-Type: testcase
-Element-Version: 3.0
-External-Reference: 
-Id: _6xi7QQpDEeOJrN9cdzAxHQ
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 5/24/18 2:20 PM
-Testcase-Type: ecl
-
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
-Content-Type: text/ecl
-Entry-Name: .content
-
-get-view "Model Explorer" | get-tree | select "TestProject \\[trunk, Version 0\\]/Tournament Pro/Matchup" | double-click
-get-editor Matchup | get-label -after [get-label Games] | get-property "getImage().getBounds().toString()" | equals "Rectangle {0, 0, 16, 17}" | verify-true
-get-editor Matchup | get-button "Add an instance of Game" | click
-get-editor Matchup | get-label -after [get-label Games] | get-property "getImage()" | equals null | verify-true
-with [get-view "Model Explorer" | get-tree] {
-    select "TestProject \\[trunk, Version 0\\]" | get-menu Commit | click
-}
-get-window Commit | get-button OK | click
-get-view "Model Explorer" | get-tree | select "TestProjectSecondCheckOut \\[trunk, Version 0\\]" | get-menu Update 
-    | click
-get-window Update | get-button OK | click
-get-view "Model Explorer" | get-tree | select "TestProjectSecondCheckOut \\[trunk, Version 1\\]/Tournament Pro/Matchup" | double-click
-get-editor Matchup -index 1 | get-label -after [get-label Games] | get-property "getImage()" | equals null | verify-true
-get-view "Model Explorer" | get-tree | select "TestProject \\[trunk, Version 1\\]/League America/Player Jonas" 
-    | double-click
-with [get-editor "Player Jonas"] {
-    get-editbox -after [get-label Name] | set-text ""
-    get-editbox -after [get-label Height] | click-text 1
-}
-with [get-editor Player] {
-    with [get-table] {
-        select "jonas@helming.de" | activate-cell-edit -type MouseClickSelection
-        apply-cell-edit -deactivate
-    }
-    get-button -after [get-label "Is Professional"] -index 4 | click
-}
-
-get-editor Player | get-label "" -after [get-label "Is Professional"] -index 1 | get-property "image.path" 
-    | equals "org.eclipse.emf.ecp.edit.swt/icons/validation_error.png" | verify-true
-with [get-view "Model Explorer" | get-tree] {
-    select "TestProjectSecondCheckOut \\[trunk, Version 1\\]/League America/Player Jonas" | double-click
-    select "TestProject \\[trunk, Version 1\\]"
-}
-get-editor "Player Jonas" | get-label "" -after [get-label "Is Professional"] -index 1 | get-property "getImage()" 
-    | equals null | verify-true
-get-view "Model Explorer" | get-tree | select "TestProject \\[trunk, Version 1\\]" | get-menu Commit | click
-get-window Commit | get-button OK | click
-get-view "Model Explorer" | get-tree | select "TestProjectSecondCheckOut \\[trunk, Version 1\\]" | get-menu Update 
-    | click
-get-window Update | get-button OK | click
-
-get-editor Player | close
-get-editor Player | close
-get-view "Model Explorer" | get-tree | select "TestProjectSecondCheckOut \\[trunk, Version 2\\]/League America/Player" 
-    | double-click
-get-editor Player | get-label "" -after [get-label "Is Professional"] -index 1 | get-property "image.path" 
-    | equals "org.eclipse.emf.ecp.edit.swt/icons/validation_error.png" | verify-true
-get-view "Model Explorer" | get-tree | select "TestProject \\[trunk, Version 2\\]/League America" | double-click
-get-editor "League America" | get-editbox -after [get-label Name] | set-text ""
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadOnlyReferenceMultiControl.test b/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadOnlyReferenceMultiControl.test
index 6a73cb5..3b8a8ad 100644
--- a/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadOnlyReferenceMultiControl.test
+++ b/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadOnlyReferenceMultiControl.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _pgFycIQREeO0WrMxvPcxtw
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 5/24/18 2:12 PM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/3/19 10:56 AM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -23,9 +23,7 @@
 	get-window "Select an EClass." | get-tree | select "bowling/Player \\[org.eclipse.emf.emfstore.bowling.Player\\]" 
 	    | double-click
 	get-view "Model Explorer" | get-tree | select "Project/View" | get-menu "Generate Controls" | click
-	with [get-window -class SelectAttributesDialog] {
-	    get-tree | select "Player \\[org.eclipse.emf.emfstore.bowling.Player\\]"
-	    get-button "Next >" | click
+	with [get-window -class WizardDialog] {
 	    get-table | get-item "eMails : EString" | check
 	    get-button Finish | click
 	}
diff --git a/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadonlyAttributeMultiControl.test b/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadonlyAttributeMultiControl.test
index 0925f0e..7583e66 100644
--- a/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadonlyAttributeMultiControl.test
+++ b/tests/ECPQ7Tests/NonEPPTests/EditorReadonly/ReadonlyAttributeMultiControl.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _ZFIgQYQvEeOewrJdzmuGPg
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 5/24/18 2:14 PM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/3/19 10:56 AM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -24,9 +24,7 @@
 	get-window "Select an EClass." | get-tree | select "bowling/Player \\[org.eclipse.emf.emfstore.bowling.Player\\]" 
 	    | double-click
 	get-view "Model Explorer" | get-tree | select "Project/View" | get-menu "Generate Controls" | click
-	with [get-window -class SelectAttributesDialog] {
-	    get-tree | select "Player \\[org.eclipse.emf.emfstore.bowling.Player\\]"
-	    get-button "Next >" | click
+	with [get-window -class WizardDialog] {
 	    get-table | get-item "eMails : EString" | check
 	    get-button Finish | click
 	}
diff --git a/tests/ECPQ7Tests/NonEPPTests/Rules/Rules_smokeTest1.test b/tests/ECPQ7Tests/NonEPPTests/Rules/Rules_smokeTest1.test
deleted file mode 100644
index 1f33334..0000000
--- a/tests/ECPQ7Tests/NonEPPTests/Rules/Rules_smokeTest1.test
+++ /dev/null
@@ -1,182 +0,0 @@
---- RCPTT testcase ---
-Format-Version: 1.0
-Contexts: _mY5uUKEgEeKX8e34E6tWIg,_rr2EEFpSEeKcnaHGSt8OwA,_IuFcgFpZEeKcnaHGSt8OwA,_f3qEUVpSEeKcnaHGSt8OwA,_fQ0PgDsqEeOHj9Cw0T_k4Q,_ElgmoHlIEeO9Ja8zvRhhOQ
-Element-Name: Rules_smokeTest1
-Element-Type: testcase
-Element-Version: 3.0
-External-Reference: 
-Id: _PyfLgGtLEeWukfCGOpNfzw
-Runtime-Version: 2.4.2.201905052359
-Save-Time: 5/7/19 3:05 PM
-Testcase-Type: ecl
-
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
-Content-Type: text/ecl
-Entry-Name: .content
-
-// and or enable rule
-try {
-	with [get-editor View] {
-	    with [get-tree] {
-		    select "View/Control dateOfBirth" | get-menu "Enable Rule" | click
-		    select "View/Control dateOfBirth/Enable Rule false" | get-menu "Or Condition" | click
-		    select "View/Control dateOfBirth/Enable Rule false/Or Condition" | get-menu "And Condition" | click
-		    select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition" | get-menu "Leaf Condition" | click
-		    select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition/Leaf Condition"
-		}
-		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 "name : EString"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	get-editor View | get-button "Select Object" | click
-	with [get-window "Insert the value"] {
-	    get-editbox 
-	        -after [get-label "The value must be parseable by the String class. For a double value please use the #.# format. For boolean values \'true\' or \'false\'."] 
-	        | set-text test
-	    get-button OK | click
-	}
-	
-	get-view "Model Explorer" | get-tree | select "Project/View" | double-click
-	with [get-editor View] {
-	    with [get-tree] {
-			select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition" 
-	                | get-menu -path "Leaf Condition" | click
-	        select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition/Leaf Condition"
-	    }
-	    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 "isProfessional : EBoolean"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	get-editor View | get-button "Select Object" | click
-	with [get-window "Insert the value"] {
-	    get-editbox 
-	        -after [get-label "The value must be parseable by the Boolean class. For a double value please use the #.# format. For boolean values \'true\' or \'false\'."] 
-	        | set-text true
-	    get-button OK | click
-	}
-	with [get-editor View] {
-	    with [get-tree] {
-			select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition" 
-	                | get-menu -path "Leaf Condition" | click
-	        select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition/Leaf Condition"
-	    }
-	    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 "height : EDouble"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	
-	get-editor View | get-button "Select Object" | click
-	with [get-window "Insert the value"] {
-	    with [get-editbox 
-	        -after [get-label "The value must be parseable by the Double class. For a double value please use the #.# format. For boolean values \'true\' or \'false\'."]] {
-	        set-text "5.5"
-	    }
-	    get-button OK | click
-	}
-	
-	with [get-editor View] {
-	    with [get-tree] {
-			select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition" 
-	                | get-menu -path "Leaf Condition" | click
-	        select "View/Control dateOfBirth/Enable Rule false/Or Condition/And Condition/Leaf Condition"
-	    }
-	    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 "numberOfVictories : EInt"
-	        get-button OK | click
-	    }
-	    get-button Finish | click
-	}
-	
-	get-editor View | get-button "Select Object" | click
-	with [get-window "Insert the value"] {
-	    get-editbox 
-	        -after [get-label "The value must be parseable by the Integer class. For a double value please use the #.# format. For boolean values \'true\' or \'false\'."] 
-	        | set-text 6
-	    get-button OK | click
-	}
-	
-	with [get-view "Model Explorer"] {
-	   try {
-			get-tree | select "Project"
-	    	get-button "Save Project" | click
-	    } -catch {
-	    	wait 1000
-	    	try {
-	    		get-tree | select "Project"
-	    		get-button "Save Project" | click
-	    	} -catch {
-	    		wait 1000
-	    		get-tree | select "Project"
-	    		get-button "Save Project" | click
-	    	}
-	    }
-	}
-	invoke-static -pluginId org.eclipse.emf.ecp.view.model.provider.xmi -className org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager -methodName dispose
-	
-	get-view "Model Explorer" | get-tree | select "Model/Player" | double-click
-	
-	with [get-editor Player] {
-		get-label "No date set! Click button to set date." | get-property enablement | equals false | verify-true
-	    get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals false | verify-true 
-	    get-button -after [get-label "Is Professional"] | check
-	    get-editbox -after [get-label Name] | set-text test
-	    get-editbox -after [get-label "Number Of Victories"] | click-text 1
-	    get-label "No date set! Click button to set date." | get-property enablement | equals true | verify-true
-    	get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals true | verify-true 
-	    get-button -after [get-label "Is Professional"] | uncheck
-	    get-editbox -after [get-label Name] | set-text ""
-	    get-editbox -after [get-label "Number Of Victories"] | click-text 1
-	    get-editbox -after [get-label "Number Of Victories"] | set-text 6
-	    get-editbox -after [get-label Height] | set-text "5.5"
-	    get-editbox -after [get-label "Number Of Victories"] | click-text 1
-	    get-label "No date set! Click button to set date." | get-property enablement | equals true | verify-true
-    	get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals true | verify-true
-	    get-button -after [get-label "Is Professional"] | check
-	    get-editbox -after [get-label Name] | set-text test
-	    get-editbox -after [get-label "Number Of Victories"] | click-text 1
-	   	get-label "No date set! Click button to set date." | get-property enablement | equals true | verify-true
-    	get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals true | verify-true
-	    get-button -after [get-label "Is Professional"] | uncheck
-	    get-editbox -after [get-label "Number Of Victories"] | set-text 7
-	    get-editbox -after [get-label Height] | click-text 1
-		get-label "No date set! Click button to set date." | get-property enablement | equals false | verify-true
-	    get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals false | verify-true
-	}
-} -finally {
-	get-view "Model Explorer" | get-tree | select "Project/View" | get-menu "Unset Root EClass" | click
-}
-
-
-// clean up (delete rule)
-get-view "Model Explorer" | get-tree | select "Project/View/Control dateOfBirth/Enable Rule false" | get-menu "Delete Model Element" | click
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/NonEPPTests/Rules/Rules_smokeTest2.test b/tests/ECPQ7Tests/NonEPPTests/Rules/Rules_smokeTest2.test
deleted file mode 100644
index 1b8ba42..0000000
--- a/tests/ECPQ7Tests/NonEPPTests/Rules/Rules_smokeTest2.test
+++ /dev/null
@@ -1,94 +0,0 @@
---- RCPTT testcase ---
-Format-Version: 1.0
-Contexts: _mY5uUKEgEeKX8e34E6tWIg,_rr2EEFpSEeKcnaHGSt8OwA,_IuFcgFpZEeKcnaHGSt8OwA,_f3qEUVpSEeKcnaHGSt8OwA,_fQ0PgDsqEeOHj9Cw0T_k4Q,_ElgmoHlIEeO9Ja8zvRhhOQ
-Element-Name: Rules_smokeTest2
-Element-Type: testcase
-Element-Version: 3.0
-External-Reference: 
-Id: _2Ozl0HlSEeOByOq_5szdNw
-Runtime-Version: 2.1.0.201606221726
-Save-Time: 9/5/16 1:55 PM
-Testcase-Type: ecl
-
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
-Content-Type: text/ecl
-Entry-Name: .content
-
-// or enable rule
-
-with [get-view "Model Explorer" | get-tree] {
-    select "Project/View/Control dateOfBirth" | get-menu "Enable Rule" | click
-    select "Project/View/Control dateOfBirth/Enable Rule false" | get-menu "Or Condition" | click
-    select "Project/View/Control dateOfBirth/Enable Rule false/Or Condition" | get-menu "Leaf Condition" | click
-    select "Project/View/Control dateOfBirth/Enable Rule false/Or Condition/Leaf Condition" 
-        | get-menu "Feature Path Domain Model Reference (Default)" | click
-}
-get-editor "Feature Path Domain Model Refe[...]" | get-button "Link Domain Model EFeature" | click
-with [get-window "Select a EStructuralFeature"] {
-    get-tree | select "name : EString"
-    get-button OK | click
-}
-get-editor "name" | close
-get-editor "Leaf Condition" | get-button "Select Object" | click
-with [get-window "Insert the value"] {
-    get-editbox 
-        -after [get-label "The value must be parseable by the String class. For a double value please use the #.# format. For boolean values \'true\' or \'false\'."] 
-        | set-text test
-    get-button OK | click
-}
-get-editor "Leaf Condition test" | close
-get-editor "Or Condition" | close
-get-editor "Enable Rule false" | close
-get-editor Player | close
-get-editor View | close
-with [get-view "Model Explorer" | get-tree] {
-    select "Project/View/Control dateOfBirth/Enable Rule false/Or Condition" | get-menu "Leaf Condition" | click
-    select "Project/View/Control dateOfBirth/Enable Rule false/Or Condition/Leaf Condition" 
-        | get-menu "Feature Path Domain Model Reference (Default)" | click
-}
-get-editor "Feature Path Domain Model Refe[...]" | get-button "Link Domain Model EFeature" | click
-with [get-window "Select a EStructuralFeature"] {
-    get-tree | select "isProfessional : EBoolean"
-    get-button OK | click
-}
-get-editor "isProfessional" | close
-get-editor "Leaf Condition" | get-button "Select Object" | click
-with [get-window "Insert the value"] {
-    get-editbox 
-        -after [get-label "The value must be parseable by the Boolean class. For a double value please use the #.# format. For boolean values \'true\' or \'false\'."] 
-        | set-text true
-    get-button OK | click
-}
-with [get-view "Model Explorer"] {
-    try {
-		get-tree | select "Project"
-    	get-button "Save Project" | click
-    } -catch {
-    	wait 1000
-    	try {
-    		get-tree | select "Project/View"
-    		get-button "Save Project" | click
-    	} -catch {
-    		wait 1000
-    		get-tree | select "Project"
-    		get-button "Save Project" | click
-    	}
-    }
-}
-get-editor "Leaf Condition true" | close
-get-view "Model Explorer" | get-tree | select "Model/Player" | double-click
-with [get-editor Player] {
-    get-label "No date set! Click button to set date." | get-property enablement | equals false | verify-true
-    get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals false | verify-true
-	get-button -after [get-label "Is Professional"] | check
-    get-label "No date set! Click button to set date." | get-property enablement | equals true | verify-true
-    get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals true | verify-true
-    get-button -after [get-label "Is Professional"] | uncheck
-    get-editbox -after [get-label Name] | set-text test
-    get-label "No date set! Click button to set date." | get-property enablement | equals true | verify-true
-    get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals true | verify-true
-	get-button -after [get-label "Is Professional"] | check
-    get-label "No date set! Click button to set date." | get-property enablement | equals true | verify-true
-    get-button -after [get-label "No date set! Click button to set date."] | get-property enablement | equals true | verify-true
-}
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/NonEPPTests/context/SetupRuleModelObjects.ctx b/tests/ECPQ7Tests/NonEPPTests/context/SetupRuleModelObjects.ctx
index 6d24c70..899216a 100644
--- a/tests/ECPQ7Tests/NonEPPTests/context/SetupRuleModelObjects.ctx
+++ b/tests/ECPQ7Tests/NonEPPTests/context/SetupRuleModelObjects.ctx
@@ -1,13 +1,12 @@
---- Q7 testcase ---
+--- RCPTT testcase ---
 Format-Version: 1.0
-Q7-vendor: www.xored.com/q7
-Context-Type: com.xored.q7.ecl.context
+Context-Type: org.eclipse.rcptt.ctx.ecl
 Element-Name: SetupRuleModelObjects
 Element-Type: context
 Element-Version: 2.0
 Id: _ElgmoHlIEeO9Ja8zvRhhOQ
-Q7-Runtime-Version: 1.3.10.201312200736
-Save-Time: 7/4/14 9:47 AM
+Runtime-Version: 2.4.2.201905052359
+Save-Time: 7/3/19 10:56 AM
 
 ------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998
 Content-Type: text/ecl
@@ -29,9 +28,7 @@
     get-button OK | click
 }
 get-view "Model Explorer" | get-tree | select "Project/View" | get-menu "Generate Controls" | click
-with [get-window -class SelectAttributesDialog] {
-    get-tree | select "Player \\[org.eclipse.emf.emfstore.bowling.Player\\]"
-    get-button "Next >" | click
+with [get-window -class WizardDialog] {
     with [get-table] {
         get-item "name : EString" | check
         get-item "dateOfBirth : EDate" | check
diff --git a/tests/ECPQ7Tests/NonEPPTests/pom.xml b/tests/ECPQ7Tests/NonEPPTests/pom.xml
index 0afb03b..0830dc7 100644
--- a/tests/ECPQ7Tests/NonEPPTests/pom.xml
+++ b/tests/ECPQ7Tests/NonEPPTests/pom.xml
@@ -1,5 +1,6 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>q7-non-epp-tests</artifactId>
@@ -10,7 +11,7 @@
 		<artifactId>q7tests</artifactId>
 		<version>0.0.1-SNAPSHOT</version>
 	</parent>
-	
+
 	<profiles>
 		<profile>
 			<id>release-build</id>
@@ -33,9 +34,14 @@
 				<version>${rcptt-maven-version}</version>
 				<extensions>true</extensions>
 				<configuration>
-						<runner>
-							<version>${rcptt-runner-version}</version>
-						</runner>
+					<runner>
+						<version>${rcptt-runner-version}</version>
+						<vmArgs>
+							<vmArg>${failsafeArgline}</vmArg>
+							<vmArg>-Xmx2048m</vmArg>
+							<vmArg>-XX:MaxPermSize=512m</vmArg>
+						</vmArgs>
+					</runner>
 					<aut>
 						<explicit>${currentBuild}/org.eclipse.emf.ecp.products/target/products/org.eclipse.emf.ecp.3x-[platform].zip</explicit>
 
@@ -43,29 +49,28 @@
 							<arg>-nl</arg>
 							<arg>en</arg>
 							<arg>-changeableClass</arg>
-							
+
 						</args>
 						<vmArgs>
-	                        <vmArg>${failsafeArgline}</vmArg>
-	                    </vmArgs>
+							<vmArg>${failsafeArgline}</vmArg>
+							<vmArg>-Xmx2048m</vmArg>
+							<vmArg>-XX:MaxPermSize=512m</vmArg>
+						</vmArgs>
 					</aut>
 					<testOptions>
-					    <!-- Timeout for all tests, in seconds -->
-					    <execTimeout>10800</execTimeout>
-					    <!-- Timeout for a single test case, in seconds -->
-					    <testexectimeout>600</testexectimeout>
+						<!-- Timeout for all tests, in seconds -->
+						<execTimeout>10800</execTimeout>
+						<!-- Timeout for a single test case, in seconds -->
+						<testexectimeout>600</testexectimeout>
 
-					    <!-- When set to true, in case of test failure
-						 AUT will be restarted. This significantly
-						 slows down execution, but may be useful 
-						 for some test suites -->
-					    <!--
-					    <restartAUTOnFailure>true</restartAUTOnFailure>
-					    -->
-					  </testOptions>
+						<!-- When set to true, in case of test failure AUT will be restarted. 
+							This significantly slows down execution, but may be useful for some test 
+							suites -->
+						<!-- <restartAUTOnFailure>true</restartAUTOnFailure> -->
+					</testOptions>
 				</configuration>
 			</plugin>
 		</plugins>
 	</build>
-		
+
 </project>
diff --git a/tests/ECPQ7Tests/NonEPPTests/tutorial/EMFFormsGettingStarted.test b/tests/ECPQ7Tests/NonEPPTests/tutorial/EMFFormsGettingStarted.test
deleted file mode 100644
index 6b5f9a9..0000000
--- a/tests/ECPQ7Tests/NonEPPTests/tutorial/EMFFormsGettingStarted.test
+++ /dev/null
@@ -1,132 +0,0 @@
---- RCPTT testcase ---
-Format-Version: 1.0
-Contexts: _mY5uUKEgEeKX8e34E6tWIg,_rr2EEFpSEeKcnaHGSt8OwA,_IuFcgFpZEeKcnaHGSt8OwA,_f3qEUVpSEeKcnaHGSt8OwA
-Element-Name: EMFFormsGettingStarted
-Element-Type: testcase
-Element-Version: 3.0
-External-Reference: 
-Id: _DLmK4Kj_EeOvtIvK8unYGg
-Runtime-Version: 1.5.4.201412181238
-Save-Time: 11/20/15 11:25 PM
-Testcase-Type: ecl
-
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
-Content-Type: text/ecl
-Entry-Name: .content
-
-get-view "Model Explorer" | get-tree | get-menu "Create new project" | click
-with [get-window "Create Project"] {
-    get-combo -after [get-label "Provider:"] | select "Eclipse Workspace (Experimental)"
-    get-editbox -after [get-label "Project Name:"] | set-text TaskViewModel
-    get-button "Browse Workspace ..." | click
-    with [get-window "New XMI File"] {
-        get-button "Create New Project ..." | click
-        with [get-window "New Project"] {
-            get-editbox -after [get-label "Project name:"] | set-text test
-            get-button Finish | click
-        }
-        get-tree | select test
-        get-editbox -after [get-label "File name:"] | set-text "test.xmi"
-        get-button Finish | click
-    }
-    get-button -after [get-label "Root Class:"] | click
-    with [get-window "Choose Root Class"] {
-        get-editbox -after [get-label Search] | set-text view
-        get-tree | select "model/View" | double-click
-    }
-    get-button Finish | click
-}
-get-view "Model Explorer" | get-tree | get-menu "Create new project" | click
-with [get-window "Create Project"] {
-    get-editbox -after [get-label "Project Name:"] | set-text DomainModelInstance
-    get-button Finish | click
-}
-get-view "Model Explorer" | get-tree | select DomainModelInstance | get-menu "New Model Element" | click
-get-window "Add new model element" | get-tree | select "bowling/Player" | double-click
-get-view "Model Explorer" | get-tree | select "TaskViewModel/View" | double-click
-get-editor View | get-editbox -after [get-label Name] | set-text "Player View"
-get-editor "Player View" | get-button "Link Root EClass" | click
-get-window "Select an EClass." | get-tree | select "bowling/Player \\[org.eclipse.emf.emfstore.bowling.Player\\]" 
-    | double-click
-get-editor "Player View" | get-label "Player [org.eclipse.emf.emfstore.bowling.Player]" | get-property caption 
-    | equals "Player [org.eclipse.emf.emfstore.bowling.Player]" | verify-true
-with [get-view "Model Explorer" | get-tree] {
-    select "TaskViewModel/Player View" | get-menu HorizontalLayout | click
-    select "TaskViewModel/Player View" | get-menu HorizontalLayout | click
-    select [get-item "TaskViewModel/Player View" | get-item HorizontalLayout -index 1] 
-        | get-menu "Delete Model Element" | click
-    select "TaskViewModel/Player View/HorizontalLayout" | get-menu VerticalLayout | click
-    select "TaskViewModel/Player View/HorizontalLayout" | get-menu VerticalLayout | click
-}
-with [get-view "Model Explorer" | get-tree] {
-    get-item "TaskViewModel/Player View" | get-property childCount | equals 1 | verify-true
-    get-item "TaskViewModel/Player View/HorizontalLayout" | get-property childCount | equals 2 | verify-true
-}
-get-view "Model Explorer" | get-tree | select "TaskViewModel/Player View/HorizontalLayout/VerticalLayout" | get-menu Control | click
-
-get-editor Control | get-button "Create and link new Domain Model Reference" | click
-with [get-window "New Reference Element"] {
-    get-tree | select "model/FeaturePathDomainModelReference" | double-click
-    get-button "Next >" | click
-    get-button "Link Domain Model EFeature" | click
-    with [get-window "Select a EStructuralFeature"] {
-		get-tree | get-property itemCount | equals 9 | verify-true
-        get-tree | select "name : EString"
-        get-button OK | click
-    }
-    get-button Finish | click
-}
-get-view "Model Explorer" | get-tree | select [get-item "TaskViewModel/Player View/HorizontalLayout" 
-    | get-item VerticalLayout -index 1]
-get-view "Model Explorer" | get-tree | select [get-item "TaskViewModel/Player View/HorizontalLayout" 
-    | get-item VerticalLayout -index 1] | get-menu "Generate Controls" | click
-
-with [get-window -class SelectAttributesDialog] {
-    get-tree | select "Player \\[org.eclipse.emf.emfstore.bowling.Player\\]"
-    get-button "Next >" | click
-}
-get-window -class SelectAttributesDialog | get-table | get-property itemCount | equals 9 | verify-true
-with [get-window -class SelectAttributesDialog] {
-    with [get-table] {
-        get-item "dateOfBirth : EDate" | check
-        get-item "height : EDouble" | check
-        get-item "isProfessional : EBoolean" | check
-        get-item "eMails : EString" | check
-        get-item "numberOfVictories : EInt" | check
-        get-item "playedTournamentTypes : TournamentType" | check
-        get-item "winLossRatio : EBigDecimal" | check
-        get-item "gender : Gender" | check
-    }
-     get-button Finish | click
-}
-with [get-view "Model Explorer"] {
-//needed for waiting to enable the save button --> hack
-    get-tree | select "TaskViewModel/Player View"
-    get-tree | select TaskViewModel
-    get-button "Save Project" | click
-}
-//get-editor "HorizontalLayout" | get-menu "Close All" | click
-get-view "Model Explorer" | get-tree | select TaskViewModel | get-menu "Create new project" | click
-with [get-window "Create Project"] {
-    get-combo -after [get-label "Provider:"] | select "Eclipse Workspace (Experimental)"
-    get-editbox -after [get-label "Project Name:"] | set-text PlayerViewModel
-    get-button "Import existing XMI-File" | click
-    get-button "Browse Workspace ..." | click
-    with [get-window "Select XMI"] {
-        get-tree | select "test/test.xmi"
-        get-button OK | click
-    }
-    get-button Finish | click
-}
-get-view "Model Explorer" | get-tree | select "PlayerViewModel/Player View" | double-click
-/*
-get-editor "Player View" | get-link "<a>Player [org.eclipse.emf.emfstore.bowling.Player]</a>" | get-property caption 
-    | equals "<a>Player [org.eclipse.emf.emfstore.bowling.Player]</a>" | verify-true
-    */
-get-view "Model Explorer" | get-tree | select "PlayerViewModel/Player View/HorizontalLayout/VerticalLayout/Control" 
-    | double-click
-get-editor Control -index 1 | get-label "Player -> name : EString" | get-property caption 
-    | equals "Player -> name : EString" | verify-true
-get-view "Model Explorer" | get-tree | get-item "PlayerViewModel/Player View/HorizontalLayout" 
-    | get-item VerticalLayout -index 1 | get-property childCount | equals 8 | verify-true
-------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/pom.xml b/tests/ECPQ7Tests/pom.xml
index 79a5943..1905474 100644
--- a/tests/ECPQ7Tests/pom.xml
+++ b/tests/ECPQ7Tests/pom.xml
@@ -8,8 +8,8 @@
 	<packaging>pom</packaging>
 
 	<properties>
-		<rcptt-runner-version>2.4.2-SNAPSHOT</rcptt-runner-version>
-		<rcptt-maven-version>2.4.2-SNAPSHOT</rcptt-maven-version>
+		<rcptt-runner-version>2.5.0-SNAPSHOT</rcptt-runner-version>
+		<rcptt-maven-version>2.5.0-SNAPSHOT</rcptt-maven-version>
 		<build_job>ecp-develop-full</build_job>
 		<currentBuild>https://hudson.eclipse.org/ecp/job/${build_job}/lastSuccessfulBuild/artifact/releng/</currentBuild>
 		<jacoco-version>0.7.9</jacoco-version>
diff --git a/tests/org.eclipse.emf.ecp.changebroker.provider.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.changebroker.provider.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.provider.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.changebroker.provider.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a59ea95..22563c5 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.changebroker.provider;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.changebroker.provider.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.changebroker.provider;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.changebroker.provider.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.22.0,1.23.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 fba1907..17af4e1 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 		<build>
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.changebroker.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.changebroker.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/ChangeBroker_ITest.launch b/tests/org.eclipse.emf.ecp.changebroker.test/ChangeBroker_ITest.launch
index 59d81c9..0d40c6c 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.test/ChangeBroker_ITest.launch
+++ b/tests/org.eclipse.emf.ecp.changebroker.test/ChangeBroker_ITest.launch
@@ -12,7 +12,7 @@
 <booleanAttribute key="clearwslog" value="false"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
 <booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="ViewModelProjectTemplate,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.provider,org.eclipse.emf.ecp.common,org.eclipse.emf.ecp.common.test.fx,org.eclipse.emf.ecp.common.ui,org.eclipse.emf.ecp.controls.fx,org.eclipse.emf.ecp.controls.fx.test,org.eclipse.emf.ecp.core,org.eclipse.emf.ecp.core.emffilter,org.eclipse.emf.ecp.core.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,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.edit.swt.test,org.eclipse.emf.ecp.editor.e3,org.eclipse.emf.ecp.emfstore.core,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.explorereditorbridge,org.eclipse.emf.ecp.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util,org.eclipse.emf.ecp.ide.util.test,org.eclipse.emf.ecp.ide.view.service,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,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,org.eclipse.emf.ecp.test.model.edit,org.eclipse.emf.ecp.ui,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,org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.ui.view.editor.controls.test,org.eclipse.emf.ecp.ui.view.swt,org.eclipse.emf.ecp.ui.view.swt.di,org.eclipse.emf.ecp.ui.view.swt.test,org.eclipse.emf.ecp.ui.view.test,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.context,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.context.test,org.eclipse.emf.ecp.view.control.multireference,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.group.fx,org.eclipse.emf.ecp.view.group.model,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.migrator,org.eclipse.emf.ecp.view.model,org.eclipse.emf.ecp.view.model.common,org.eclipse.emf.ecp.view.model.common.di,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.model.provider.generator,org.eclipse.emf.ecp.view.model.provider.xmi,org.eclipse.emf.ecp.view.model.provider.xmi.test,org.eclipse.emf.ecp.view.model.test,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.columnservice,org.eclipse.emf.ecp.view.table.editor,org.eclipse.emf.ecp.view.table.migrate,org.eclipse.emf.ecp.view.table.model,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.model.test,org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.template.controls.swt,org.eclipse.emf.ecp.view.template.model,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.test.common,org.eclipse.emf.ecp.view.test.common.swt,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.ui.editor.test,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.unset.test,org.eclipse.emf.ecp.view.util.swt,org.eclipse.emf.ecp.view.util.swt.rap,org.eclipse.emf.ecp.view.validation,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.validation.test,org.eclipse.emf.ecp.view.vertical.fx,org.eclipse.emf.ecp.view.vertical.model,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.viewmodel.fx,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.fx.projects,org.eclipse.emf.emfstore.fx.util,org.eclipse.emf.rap.edit.ui.minimal"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.ecp.application.e3,org.eclipse.emf.ecp.application.e4,org.eclipse.emf.ecp.changebroker.provider,org.eclipse.emf.ecp.common,org.eclipse.emf.ecp.common.ui,org.eclipse.emf.ecp.core,org.eclipse.emf.ecp.core.emffilter,org.eclipse.emf.ecp.core.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,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.edit.swt.test,org.eclipse.emf.ecp.editor.e3,org.eclipse.emf.ecp.emfstore.core,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.search,org.eclipse.emf.ecp.examplemodel.ui,org.eclipse.emf.ecp.explorereditorbridge,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util,org.eclipse.emf.ecp.ide.util.test,org.eclipse.emf.ecp.ide.view.service,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.model,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.test.model,org.eclipse.emf.ecp.test.model.edit,org.eclipse.emf.ecp.ui,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.e4,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,org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.ui.view.editor.controls.test,org.eclipse.emf.ecp.ui.view.swt,org.eclipse.emf.ecp.ui.view.swt.di,org.eclipse.emf.ecp.ui.view.swt.test,org.eclipse.emf.ecp.ui.view.test,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.context,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.control.multireference,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.group.model,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.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.model,org.eclipse.emf.ecp.view.label.model.edit,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.migrator,org.eclipse.emf.ecp.view.model,org.eclipse.emf.ecp.view.model.common,org.eclipse.emf.ecp.view.model.common.di,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.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.model.provider.generator,org.eclipse.emf.ecp.view.model.provider.xmi,org.eclipse.emf.ecp.view.model.provider.xmi.test,org.eclipse.emf.ecp.view.model.test,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.columnservice,org.eclipse.emf.ecp.view.table.model,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.model.test,org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.template.model,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.test.common,org.eclipse.emf.ecp.view.test.common.swt,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.ui.editor.test,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.unset.test,org.eclipse.emf.ecp.view.util.swt,org.eclipse.emf.ecp.view.validation,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.validation.test,org.eclipse.emf.ecp.view.vertical.model,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.workspace.core,org.eclipse.emf.rap.edit.ui.minimal"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -25,6 +25,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.changebroker.test.ChangeBroker_ITest"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -33,8 +34,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.java7@default:false,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@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.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.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.emfstore.examplemodel@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.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit@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.emf.ecp.changebroker.provider.test@default:false,org.eclipse.emf.ecp.changebroker.test@default:false,org.eclipse.emf.ecp.changebroker@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@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.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@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@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.emfstore.examplemodel@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.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.0.v200806040011@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.changebroker.provider.test@default:false,org.eclipse.emf.ecp.changebroker.test@default:false,org.eclipse.emf.ecp.changebroker@default:default,org.eclipse.emf.ecp.common.test@default:false,org.eclipse.emf.ecp.common.ui.test@default:false,org.eclipse.emf.ecp.ide.editor.view.templatebridge@default:default,org.eclipse.emf.ecp.ide.editor.view.test@default:false,org.eclipse.emf.ecp.ide.migration@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests@default:false,org.eclipse.emf.ecp.ui.view.editor.controls.legacy@default:default,org.eclipse.emf.ecp.ui.view.linewrapper.tests@default:false,org.eclipse.emf.ecp.ui.view.linewrapper@default:default,org.eclipse.emf.ecp.view.categorization.model.edit.test@default:false,org.eclipse.emf.ecp.view.compoundcontrol.swt.test@default:false,org.eclipse.emf.ecp.view.compoundcontrol.tooling@default:default,org.eclipse.emf.ecp.view.context.tests@default:false,org.eclipse.emf.ecp.view.control.multireference.tests@default:false,org.eclipse.emf.ecp.view.edapt.util.test@default:false,org.eclipse.emf.ecp.view.migrator.test@default:false,org.eclipse.emf.ecp.view.model.common.test@default:false,org.eclipse.emf.ecp.view.model.edapt@default:default,org.eclipse.emf.ecp.view.model.preview.common.test@default:false,org.eclipse.emf.ecp.view.model.provider.generator.test@default:false,org.eclipse.emf.ecp.view.section.ui.swt.test@default:false,org.eclipse.emf.ecp.view.table.celleditor.rcp@default:default,org.eclipse.emf.ecp.view.table.edapt@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.rcp@default:default,org.eclipse.emf.ecp.view.table.ui.swt.persistedstate@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.edit@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.tooling.test@default:false,org.eclipse.emf.ecp.view.treemasterdetail.validation.test@default:false,org.eclipse.emf.ecp.view.treemasterdetail.validation@default:default,org.eclipse.emfforms.coffee.model.edit@default:default,org.eclipse.emfforms.coffee.model.viewmodel@default:default,org.eclipse.emfforms.coffee.model@default:default,org.eclipse.emfforms.coffee.wizards@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.integrationtest@default:default,org.eclipse.emfforms.core.services.databinding.keyattribute.tests@default:false,org.eclipse.emfforms.core.services.databinding.keyattribute@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.datatemplate.test@default:false,org.eclipse.emfforms.core.services.datatemplate@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.keyattribute.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.keyattribute@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.panel.test@default:false,org.eclipse.emfforms.core.services.mappingprovider.table.panel@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.featurepath.test@default:false,org.eclipse.emfforms.core.services.segments.featurepath@default:default,org.eclipse.emfforms.core.services.segments.index.test@default:false,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping.test@default:false,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments.multi.test@default:false,org.eclipse.emfforms.core.services.segments.multi@default:default,org.eclipse.emfforms.core.services.segments.test@default:false,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.tests@default:false,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.test@default:false,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.datatemplate.model.edit@default:default,org.eclipse.emfforms.datatemplate.model@default:default,org.eclipse.emfforms.datatemplate.tooling.tests@default:false,org.eclipse.emfforms.datatemplate.tooling@default:default,org.eclipse.emfforms.editor.ecore.test@default:false,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor.genmodel.util@default:default,org.eclipse.emfforms.editor.genmodel@default:default,org.eclipse.emfforms.editor.test@default:false,org.eclipse.emfforms.editor.viewmodel@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.example.common.wizards@default:default,org.eclipse.emfforms.ide.builder.test@default:default,org.eclipse.emfforms.ide.builder@default:default,org.eclipse.emfforms.ide.datatemplate.builder@default:default,org.eclipse.emfforms.ide.ecore.builder@default:default,org.eclipse.emfforms.ide.view.indexsegment@default:default,org.eclipse.emfforms.ide.view.mappingsegment.test@default:false,org.eclipse.emfforms.ide.view.mappingsegment@default:default,org.eclipse.emfforms.ide.view.multisegment.test.uithread@default:false,org.eclipse.emfforms.ide.view.multisegment.test@default:false,org.eclipse.emfforms.ide.view.multisegment@default:default,org.eclipse.emfforms.ide.view.segments@default:default,org.eclipse.emfforms.ide.viewtemplate.builder@default:default,org.eclipse.emfforms.localization.tests@default:false,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.rulerepository.model.edit@default:default,org.eclipse.emfforms.rulerepository.model@default:default,org.eclipse.emfforms.rulerepository.tooling.test@default:false,org.eclipse.emfforms.rulerepository.tooling@default:default,org.eclipse.emfforms.setup.base@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.control.text.autocomplete.tests@default:false,org.eclipse.emfforms.swt.control.text.autocomplete@default:default,org.eclipse.emfforms.swt.control.text.richtext@default:default,org.eclipse.emfforms.swt.controlgrid.test@default:false,org.eclipse.emfforms.swt.controlgrid@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.reference.table.test@default:false,org.eclipse.emfforms.swt.reference.table@default:default,org.eclipse.emfforms.swt.table.test@default:false,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail.test@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model.edit@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model.edit@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.indexsegment.model.edit@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model.edit@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.edit@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.changebroker.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.changebroker.test/META-INF/MANIFEST.MF
index 1145f77..e212cbf 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.changebroker;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.changebroker.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.changebroker;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.changebroker.test;version="1.22.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)",
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml b/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml
index eebfaf2..05c2ae8 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 		<build>
diff --git a/tests/org.eclipse.emf.ecp.common.test.fx/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.common.test.fx/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.common.test.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.common.test.fx/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4ab496c..a7f4e21 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.common.spi;version="1.21.0",
- org.eclipse.emf.ecp.common.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.common.test.model;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.common.test.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.common.test.model.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.common.spi;version="1.22.0",
+ org.eclipse.emf.ecp.common.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.common.test.model;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.common.test.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.common.test.model.util;version="1.22.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,
diff --git a/tests/org.eclipse.emf.ecp.common.test/pom.xml b/tests/org.eclipse.emf.ecp.common.test/pom.xml
index 59cea66..75a0b40 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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.ui.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.common.ui.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.common.ui.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.common.ui.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1f95f6e..2a6a8a2 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Common UI Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.ui.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.spi.common.ui.composites;version="1.21.0"
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.spi.common.ui.composites;version="1.22.0"
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
  org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
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 17a3305..1b31afa 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.controls.fx.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.controls.fx.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.controls.fx.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1fffab0..c883937 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.test.fx;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.21.0,1.22.0)",
+Require-Bundle: org.eclipse.emf.ecp.controls.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.test.fx;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.1.0,2.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 394d439..9dc1058 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.concurrent.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.core.rap.concurrent.test;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.client;bundle-version="[1.9.0,1.10.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core.internal;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.internal.ui;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core.internal;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.internal.ui;version="[1.22.0,1.23.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 cc70470..ac8f8b3 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8f0c071..e61db96 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.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 8d224aa..c2bd8db 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 90dde5d..e165b18 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.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 19b0b17..6a03df5 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b0cb10f..f7df72e 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.core.rap.test;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core.internal;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core.internal;version="[1.22.0,1.23.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 b2cde94..174c62c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.core.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.core.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.core.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b1a255b..cc9a60d 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.core.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.core.test;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="4.0.0",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.core.test/pom.xml b/tests/org.eclipse.emf.ecp.core.test/pom.xml
index 885d0c4..4482786 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.diffmerge.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 4bfbf52..c5bf6a0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.diffmerge.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.diffmerge.test;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.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 bfb5fc5..f80836e 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c650770..1d58a9f 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ecore.editor;bundle-version="[1.22.0,1.23.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 714e44c..65fcf11 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

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

   

   <build>

diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2f7f65b..67a1ac0 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,27 +2,29 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.edit.internal.model.testData;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.edit.internal.model.testData.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.edit.internal.model.testData.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.edit.internal.swt.controls;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.edit.internal.swt.table;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.edit.internal.swt.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.edit.spi.swt.table;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.edit.internal.model.testData;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.model.testData.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.model.testData.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.swt.controls;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.swt.table;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.swt.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.spi.swt.table;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.prevalidation;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.prevalidation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.swtbot.swt.finder;bundle-version="[2.8.0,3.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.edit.swt.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.eclipse.emf.ecp.view.test.common.swt.spi;version="[1.22.0,1.23.0)"
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 7824e51..2354fdf 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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/util/PreSetValidationListeners_PTest.java b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/util/PreSetValidationListeners_PTest.java
new file mode 100644
index 0000000..3b55d3b
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/util/PreSetValidationListeners_PTest.java
@@ -0,0 +1,293 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.util;
+
+import static org.hamcrest.CoreMatchers.both;
+import static org.hamcrest.CoreMatchers.instanceOf;
+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.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
+import org.eclipse.emfforms.spi.common.validation.PreSetValidationService;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
+import org.eclipse.emfforms.spi.core.services.view.RootDomainModelChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+/**
+ * Tests for the {@link PreSetValidationListeners} class.
+ */
+@SuppressWarnings("nls")
+@RunWith(MockitoJUnitRunner.class)
+public class PreSetValidationListeners_PTest {
+
+	@Mock
+	private PreSetValidationService service;
+
+	private Shell shell;
+	private SWTBot bot;
+
+	/**
+	 * Initializes me.
+	 */
+	public PreSetValidationListeners_PTest() {
+		super();
+	}
+
+	/**
+	 * Verify management of instances of the class: a single instance for any view-model context.
+	 */
+	@Test
+	public void singleInstantiation() {
+		final ViewModelContext ctx = mockContext();
+		final PreSetValidationListeners l1 = PreSetValidationListeners.create(ctx);
+
+		final PreSetValidationListeners l2 = PreSetValidationListeners.create(ctx);
+		assertThat(l2, sameInstance(l1));
+
+		final PreSetValidationListeners l3 = PreSetValidationListeners.create(ctx);
+		assertThat(l3, sameInstance(l1));
+	}
+
+	/**
+	 * Verify management of instances of the class: a different instance for different view-model contexts.
+	 */
+	@Test
+	public void multipleInstantiation() {
+		final ViewModelContext ctx1 = mockContext();
+		final PreSetValidationListeners l1 = PreSetValidationListeners.create(ctx1);
+
+		final ViewModelContext ctx2 = mockContext();
+		final PreSetValidationListeners l2 = PreSetValidationListeners.create(ctx2);
+		assertThat(l2, not(sameInstance(l1)));
+
+		final ViewModelContext ctx3 = mockContext();
+		final PreSetValidationListeners l3 = PreSetValidationListeners.create(ctx3);
+		assertThat(l3, both(not(sameInstance(l1))).and(not(sameInstance(l2))));
+	}
+
+	/**
+	 * Verify the support for verify listener on a text field.
+	 */
+	@Test
+	public void textVerification() {
+		final Text text = new Text(shell, SWT.BORDER);
+
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		final EStructuralFeature feature = EcorePackage.Literals.ENAMED_ELEMENT__NAME;
+		PreSetValidationListeners.create(mockContext()).verify(text, feature, control);
+		SWTTestUtil.waitForUIThread();
+
+		bot.text().setText("foo");
+
+		verify(service).validate(feature, "foo");
+		assertError(control);
+	}
+
+	/**
+	 * Verify the support for verify listener on a combo field.
+	 */
+	@Test
+	public void comboVerification() {
+		final Combo combo = new Combo(shell, SWT.DROP_DOWN);
+
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		final EStructuralFeature feature = EcorePackage.Literals.ENAMED_ELEMENT__NAME;
+		PreSetValidationListeners.create(mockContext()).verify(combo, feature, control);
+		SWTTestUtil.waitForUIThread();
+
+		bot.comboBox().setText("foo");
+
+		verify(service).validate(feature, "foo");
+		assertError(control);
+	}
+
+	/**
+	 * Verify the support for verify listener on a text field that is not a rendering of a view
+	 * model element.
+	 */
+	@Test
+	public void textVerification_noVElement() {
+		final Text text = new Text(shell, SWT.BORDER);
+
+		final EStructuralFeature feature = EcorePackage.Literals.ENAMED_ELEMENT__NAME;
+		PreSetValidationListeners.create(mockContext()).verify(text, feature);
+		SWTTestUtil.waitForUIThread();
+
+		bot.text().setText("foo");
+
+		verify(service).validateLoose(feature, "foo");
+	}
+
+	/**
+	 * Verify the support for verify listener on a combo field that is not a rendering of a view
+	 * model element.
+	 */
+	@Test
+	public void comboVerification_noVElement() {
+		final Combo combo = new Combo(shell, SWT.DROP_DOWN);
+
+		final EStructuralFeature feature = EcorePackage.Literals.ENAMED_ELEMENT__NAME;
+		PreSetValidationListeners.create(mockContext()).verify(combo, feature);
+		SWTTestUtil.waitForUIThread();
+
+		bot.comboBox().setText("foo");
+
+		verify(service).validateLoose(feature, "foo");
+	}
+
+	/**
+	 * Verify that the pre-set validation does not happen during root domain model change
+	 * in the view model context.
+	 */
+	@Test
+	public void domainModelChange() {
+		final Text text = new Text(shell, SWT.BORDER);
+
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		final EStructuralFeature feature = EcorePackage.Literals.ENAMED_ELEMENT__NAME;
+		final ViewModelContext ctx = mockContext();
+		PreSetValidationListeners.create(ctx).verify(text, feature, control);
+		SWTTestUtil.waitForUIThread();
+
+		// We should pause listening while the domain model is changed
+
+		ctx.changeDomainModel(EcoreFactory.eINSTANCE.createEObject());
+		bot.text().setText("loaded from model");
+		SWTTestUtil.waitForUIThread();
+
+		verify(service, never()).validate(any(), any());
+
+		// After domain model change is processed, we resume listening
+
+		bot.text().setText("foo");
+		SWTTestUtil.waitForUIThread();
+
+		verify(service).validate(feature, "foo");
+		assertError(control);
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+		shell.open();
+		bot = new SWTBot(shell);
+	}
+
+	@Before
+	public void mockValidation() {
+		when(service.validateLoose(any(), any())).thenReturn(Diagnostic.OK_INSTANCE);
+		when(service.validate(any(), any()))
+			.then(invocation -> new BasicDiagnostic(Diagnostic.ERROR, "test", 0, "Test error", null));
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	ViewModelContext mockContext() {
+		final ViewModelContext result = mock(ViewModelContext.class);
+
+		// Mock management of context values
+		final Map<String, Object> values = new HashMap<>();
+		when(result.getContextValue(anyString())).then(invocation -> values.get(invocation.getArguments()[0]));
+		doAnswer(invocation -> values.put((String) invocation.getArguments()[0], invocation.getArguments()[1]))
+			.when(result).putContextValue(anyString(), any());
+
+		// Mock access to certain critical services
+		when(result.getService(PreSetValidationService.class)).thenReturn(service);
+		when(result.hasService(any())).thenAnswer(invocation -> ((ViewModelContext) invocation.getMock())
+			.getService((Class<?>) invocation.getArguments()[0]) != null);
+
+		// Mock support for root domain model change
+		final List<EMFFormsContextListener> listeners = new ArrayList<>();
+		final List<RootDomainModelChangeListener> domainModelListeners = new ArrayList<>();
+		doAnswer(invocation -> {
+			listeners.forEach(EMFFormsContextListener::contextDispose);
+			domainModelListeners.forEach(RootDomainModelChangeListener::notifyChange);
+			listeners.forEach(EMFFormsContextListener::contextInitialised);
+			return null;
+		}).when(result).changeDomainModel(any());
+		doAnswer(invocation -> {
+			listeners.add((EMFFormsContextListener) invocation.getArguments()[0]);
+			return null;
+		}).when(result).registerEMFFormsContextListener(any());
+		doAnswer(invocation -> {
+			listeners.remove(invocation.getArguments()[0]);
+			return null;
+		}).when(result).unregisterEMFFormsContextListener(any());
+		doAnswer(invocation -> {
+			domainModelListeners.add((RootDomainModelChangeListener) invocation.getArguments()[0]);
+			return null;
+		}).when(result).registerRootDomainModelChangeListener(any());
+		doAnswer(invocation -> {
+			domainModelListeners.remove(invocation.getArguments()[0]);
+			return null;
+		}).when(result).unregisterRootDomainModelChangeListener(any());
+
+		return result;
+	}
+
+	void assertError(VElement viewModel) {
+		final VDiagnostic vDiagnostic = viewModel.getDiagnostic();
+		assertThat("No diagnostic attached to view model", vDiagnostic, notNullValue());
+		assertThat("No diagnostics", vDiagnostic.getDiagnostics().isEmpty(), is(false));
+
+		final Object first = vDiagnostic.getDiagnostics().get(0);
+		assertThat("Not a diagnostic", first, instanceOf(Diagnostic.class));
+		assertThat("Not an error", ((Diagnostic) vDiagnostic.getDiagnostics().get(0)).getSeverity(),
+			is(Diagnostic.ERROR));
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java
index 67f6c5f..aac8944 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java
@@ -40,19 +40,24 @@
 	@Parameters(name = "Feature:{0} Expected Value:{2} isValid:{3}")
 	public static Object[] parameters() {
 		return new Object[][] {
-			{ TestDataPackage.eINSTANCE.getTestData_String(), TestDataFactory.eINSTANCE.createTestData(), "foo", true //$NON-NLS-1$
+			{ TestDataPackage.eINSTANCE.getTestData_String(), TestDataFactory.eINSTANCE.createTestData(), "foo", "foo", //$NON-NLS-1$ //$NON-NLS-2$
+				true
+			},
+			{ TestDataPackage.eINSTANCE.getTestData_String(), TestDataFactory.eINSTANCE.createTestData(), "", null, true //$NON-NLS-1$
 			},
 			{ TestDataPackage.eINSTANCE.getTestData_Boolean(), TestDataFactory.eINSTANCE.createTestData(),
-				Boolean.TRUE,
+				Boolean.TRUE, Boolean.TRUE,
 				true },
-			{ TestDataPackage.eINSTANCE.getTestData_Integer(), TestDataFactory.eINSTANCE.createTestData(), 2, true },
-			{ TestDataPackage.eINSTANCE.getTestData_Long(), TestDataFactory.eINSTANCE.createTestData(), 2L, true },
-			{ TestDataPackage.eINSTANCE.getTestData_Double(), TestDataFactory.eINSTANCE.createTestData(), 85.5d, true
+			{ TestDataPackage.eINSTANCE.getTestData_Integer(), TestDataFactory.eINSTANCE.createTestData(), 2, 2, true },
+			{ TestDataPackage.eINSTANCE.getTestData_Long(), TestDataFactory.eINSTANCE.createTestData(), 2L, 2L, true },
+			{ TestDataPackage.eINSTANCE.getTestData_Double(), TestDataFactory.eINSTANCE.createTestData(), 85.5d, 85.5d,
+				true
 			},
-			{ TestDataPackage.eINSTANCE.getTestData_Float(), TestDataFactory.eINSTANCE.createTestData(), 85.5f, true
+			{ TestDataPackage.eINSTANCE.getTestData_Float(), TestDataFactory.eINSTANCE.createTestData(), 85.5f, 85.5f,
+				true
 			},
 			{ TestDataPackage.eINSTANCE.getTestData_StringMax8(), TestDataFactory.eINSTANCE.createTestData(),
-				"extra long invalid string", false }, //$NON-NLS-1$
+				"extra long invalid string", "extra long invalid string", false }, //$NON-NLS-1$ //$NON-NLS-2$
 		};
 	}
 
@@ -64,11 +69,14 @@
 	private final Object newValue;
 	private final EObject eObject;
 	private final boolean valid;
+	private final Object expectedValue;
 
-	public StringCellEditor_PTest(EStructuralFeature feature, EObject eObject, Object newValue, boolean valid) {
+	public StringCellEditor_PTest(EStructuralFeature feature, EObject eObject, Object newValue, Object expectedValue,
+		boolean valid) {
 		this.feature = feature;
 		this.eObject = eObject;
 		this.newValue = newValue;
+		this.expectedValue = expectedValue;
 		this.valid = valid;
 
 	}
@@ -98,8 +106,8 @@
 		target.setValue(newValue.toString());
 		assertEquals(newValue.toString(), ((Text) editor.getControl()).getText());
 		if (valid) {
-			assertEquals(newValue, model.getValue());
-			assertEquals(target.getValue(), model.getValue().toString());
+			assertEquals(expectedValue, model.getValue());
+			assertEquals(target.getValue(), expectedValue == null ? "" : model.getValue().toString()); //$NON-NLS-1$
 		} else {
 			assertNull(model.getValue());
 		}
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 19e294e..ee030a2 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.json.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.emf2web;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.21.0",
- org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.emf2web;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.22.0",
+ org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.22.0,1.23.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 5d28c82..12e9574 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.ide.editor.view.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ide.editor.view.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ide.editor.view.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ide.editor.view.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bc0e891..ed8db13 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE Editor View Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ide.editor.view.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ide.editor.view.test;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
  org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.apache.log4j;bundle-version="[1.2.15,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.editor.view.test
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 8ecabfe..7460a17 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ide.util.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ide.util.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 587ba6f..84d62e6 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.util.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.util.test;version="1.22.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)",
@@ -14,11 +14,11 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,1.10.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
- org.eclipse.emfforms.common;bundle-version="[1.21.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)",
  org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.util.test
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 25abe61..3df9ce9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ide.view.service.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ide.view.service.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ide.view.service.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ide.view.service.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a06f308..e57862b 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDEViewModelRegistry Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.view.service.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.view.service.test;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.ide.view.service.test;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.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)",
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 6e156cc..2335d12 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.integrationtest/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 78d424a..a914fc8 100644
--- a/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Integrationtest
 Bundle-SymbolicName: org.eclipse.emf.ecp.integrationtest
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.integrationtest.Activator
-Export-Package: org.eclipse.emf.ecp.integrationtest;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.integrationtest;version="1.22.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
diff --git a/tests/org.eclipse.emf.ecp.integrationtest/pom.xml b/tests/org.eclipse.emf.ecp.integrationtest/pom.xml
index 37c28a9..82c2215 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.quickfix.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.quickfix.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.quickfix.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.quickfix.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 db324be..35019c1 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Model Quick Fix Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.quickfix;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.ui.quickfix.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.quickfix;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.ui.quickfix.test;version="1.22.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)",
diff --git a/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml b/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml
index afbd94d..696d978 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3efea90..b354dc0 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Test Model Edit Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.model.edit;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.test.university.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.22.0,1.23.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
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 70db60f..c01c9f4 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityItemProviderAdapterFactory.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityItemProviderAdapterFactory.java
index a38821b..1503b51 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityItemProviderAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityItemProviderAdapterFactory.java
@@ -71,7 +71,7 @@
 	 *
 	 * @generated
 	 */
-	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+	protected Collection<Object> supportedTypes = new ArrayList<>();
 
 	/**
 	 * This constructs an instance.
@@ -246,6 +246,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public ComposeableAdapterFactory getRootAdapterFactory() {
 		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
 	}
@@ -257,6 +258,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void setParentAdapterFactory(
 		ComposedAdapterFactory parentAdapterFactory) {
 		this.parentAdapterFactory = parentAdapterFactory;
@@ -310,6 +312,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void addListener(INotifyChangedListener notifyChangedListener) {
 		changeNotifier.addListener(notifyChangedListener);
 	}
@@ -321,6 +324,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void removeListener(INotifyChangedListener notifyChangedListener) {
 		changeNotifier.removeListener(notifyChangedListener);
 	}
@@ -332,6 +336,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void fireNotifyChanged(Notification notification) {
 		changeNotifier.fireNotifyChanged(notification);
 
@@ -347,6 +352,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void dispose() {
 		if (courseCatalogItemProvider != null) {
 			courseCatalogItemProvider.dispose();
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 0a5f72d..6bc6053 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.21.0.qualifier">
+      version="1.22.0.qualifier">
 
    <description url="http://www.example.com/description">
       [Enter Feature Description here.]
@@ -35,6 +35,7 @@
          download-size="0"
          install-size="0"
          version="0.0.0"
-         fragment="true"/>
+         fragment="true"
+         unpack="false"/>
 
 </feature>
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 f87978d..78f82cd 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 585d1ab..15d0ec8 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.test.university;version="1.21.0",
- org.eclipse.emf.ecp.test.university.impl;version="1.21.0",
- org.eclipse.emf.ecp.test.university.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.test.university;version="1.22.0",
+ org.eclipse.emf.ecp.test.university.impl;version="1.22.0",
+ org.eclipse.emf.ecp.test.university.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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 ad36e34..fd4b4ba 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AssistantImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AssistantImpl.java
index d04c59e..d0c8ae1 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AssistantImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AssistantImpl.java
@@ -102,6 +102,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -112,6 +113,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		final String oldName = name;
 		name = newName;
@@ -126,9 +128,10 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EList<Address> getAddresses() {
 		if (addresses == null) {
-			addresses = new EObjectContainmentEList<Address>(Address.class, this,
+			addresses = new EObjectContainmentEList<>(Address.class, this,
 				UniversityPackage.ASSISTANT__ADDRESSES);
 		}
 		return addresses;
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseCatalogImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseCatalogImpl.java
index b2cfe43..7ec2139 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseCatalogImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseCatalogImpl.java
@@ -78,9 +78,10 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EList<Course> getCourses() {
 		if (courses == null) {
-			courses = new EObjectContainmentEList<Course>(Course.class, this,
+			courses = new EObjectContainmentEList<>(Course.class, this,
 				UniversityPackage.COURSE_CATALOG__COURSES);
 		}
 		return courses;
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseImpl.java
index a9d50ff..622202f 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/CourseImpl.java
@@ -129,6 +129,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public String getId() {
 		return id;
 	}
@@ -139,6 +140,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void setId(String newId) {
 		final String oldId = id;
 		id = newId;
@@ -153,6 +155,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -163,6 +166,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		final String oldName = name;
 		name = newName;
@@ -177,6 +181,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public int getEtcs() {
 		return etcs;
 	}
@@ -187,6 +192,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void setEtcs(int newEtcs) {
 		final int oldEtcs = etcs;
 		etcs = newEtcs;
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/ProfessorImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/ProfessorImpl.java
index d09505b..8a68ee5 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/ProfessorImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/ProfessorImpl.java
@@ -102,6 +102,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -112,6 +113,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		final String oldName = name;
 		name = newName;
@@ -126,9 +128,10 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EList<Address> getAddresses() {
 		if (addresses == null) {
-			addresses = new EObjectContainmentEList<Address>(Address.class, this,
+			addresses = new EObjectContainmentEList<>(Address.class, this,
 				UniversityPackage.PROFESSOR__ADDRESSES);
 		}
 		return addresses;
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/StaffImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/StaffImpl.java
index 5f29b48..9591b5f 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/StaffImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/StaffImpl.java
@@ -82,6 +82,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EList<Professor> getProfessors() {
 		return getStaff().list(UniversityPackage.Literals.STAFF__PROFESSORS);
 	}
@@ -92,6 +93,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EList<Assistant> getAssistants() {
 		return getStaff().list(UniversityPackage.Literals.STAFF__ASSISTANTS);
 	}
@@ -102,6 +104,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getStaff() {
 		if (staff == null) {
 			staff = new BasicFeatureMap(this, UniversityPackage.STAFF__STAFF);
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityFactoryImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityFactoryImpl.java
index 4625b2c..5731996 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityFactoryImpl.java
@@ -98,6 +98,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public CourseCatalog createCourseCatalog() {
 		final CourseCatalogImpl courseCatalog = new CourseCatalogImpl();
 		return courseCatalog;
@@ -109,6 +110,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public Course createCourse() {
 		final CourseImpl course = new CourseImpl();
 		return course;
@@ -120,6 +122,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public Staff createStaff() {
 		final StaffImpl staff = new StaffImpl();
 		return staff;
@@ -131,6 +134,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public Professor createProfessor() {
 		final ProfessorImpl professor = new ProfessorImpl();
 		return professor;
@@ -142,6 +146,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public Assistant createAssistant() {
 		final AssistantImpl assistant = new AssistantImpl();
 		return assistant;
@@ -153,6 +158,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public Address createAddress() {
 		final AddressImpl address = new AddressImpl();
 		return address;
@@ -164,6 +170,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public UniversityPackage getUniversityPackage() {
 		return (UniversityPackage) getEPackage();
 	}
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityPackageImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityPackageImpl.java
index 8e7b7d4..a57b035 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/UniversityPackageImpl.java
@@ -155,6 +155,7 @@
 		// Register package validator
 		EValidator.Registry.INSTANCE.put(theUniversityPackage,
 			new EValidator.Descriptor() {
+				@Override
 				public EValidator getEValidator() {
 					return UniversityValidator.INSTANCE;
 				}
@@ -174,6 +175,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getCourseCatalog() {
 		return courseCatalogEClass;
 	}
@@ -184,6 +186,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EReference getCourseCatalog_Courses() {
 		return (EReference) courseCatalogEClass.getEStructuralFeatures().get(0);
 	}
@@ -194,6 +197,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getCourse() {
 		return courseEClass;
 	}
@@ -204,6 +208,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCourse_Id() {
 		return (EAttribute) courseEClass.getEStructuralFeatures().get(0);
 	}
@@ -214,6 +219,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCourse_Name() {
 		return (EAttribute) courseEClass.getEStructuralFeatures().get(1);
 	}
@@ -224,6 +230,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCourse_Etcs() {
 		return (EAttribute) courseEClass.getEStructuralFeatures().get(2);
 	}
@@ -234,6 +241,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getStaff() {
 		return staffEClass;
 	}
@@ -244,6 +252,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EReference getStaff_Professors() {
 		return (EReference) staffEClass.getEStructuralFeatures().get(0);
 	}
@@ -254,6 +263,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EReference getStaff_Assistants() {
 		return (EReference) staffEClass.getEStructuralFeatures().get(1);
 	}
@@ -264,6 +274,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EAttribute getStaff_Staff() {
 		return (EAttribute) staffEClass.getEStructuralFeatures().get(2);
 	}
@@ -274,6 +285,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getProfessor() {
 		return professorEClass;
 	}
@@ -284,6 +296,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getAssistant() {
 		return assistantEClass;
 	}
@@ -294,6 +307,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getPerson() {
 		return personEClass;
 	}
@@ -304,6 +318,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EAttribute getPerson_Name() {
 		return (EAttribute) personEClass.getEStructuralFeatures().get(0);
 	}
@@ -314,6 +329,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EReference getPerson_Addresses() {
 		return (EReference) personEClass.getEStructuralFeatures().get(1);
 	}
@@ -324,6 +340,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public EClass getAddress() {
 		return addressEClass;
 	}
@@ -334,6 +351,7 @@
 	 *
 	 * @generated
 	 */
+	@Override
 	public UniversityFactory getUniversityFactory() {
 		return (UniversityFactory) getEFactoryInstance();
 	}
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityValidator.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityValidator.java
index 976f84f..6b16e61 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityValidator.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityValidator.java
@@ -208,8 +208,8 @@
 		}
 
 		final EList<Course> existingCourses = courseCatalog.getCourses();
-		final Map<String, Set<Course>> contentMap = new LinkedHashMap<String, Set<Course>>();
-		final List<Course> duplicates = new ArrayList<Course>();
+		final Map<String, Set<Course>> contentMap = new LinkedHashMap<>();
+		final List<Course> duplicates = new ArrayList<>();
 
 		for (final Course courseToCheck : existingCourses) {
 			final String id = courseToCheck.getId();
diff --git a/tests/org.eclipse.emf.ecp.ui.validation.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ui.validation.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ui.validation.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ui.validation.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1ec2fbb..56d8c13 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.ui.validation.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.ui.validation.test;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.22.0,1.23.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 b71eae3..18be6f7 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/META-INF/MANIFEST.MF
index 381d036..9fc91a8 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/META-INF/MANIFEST.MF
@@ -1,15 +1,15 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests;singleton:=true
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)"
-Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests
-Bundle-Vendor: Eclipse Modeling Project
 Bundle-Name: View Editor Controls - Tests for Blocking UI
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests;singleton:=true
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.editor.handler;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
  org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.editor.handler;version="1.21.0";x-internal:=true
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/pom.xml b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/pom.xml
index 7d2b6d5..dada50d 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.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.blockinguitests</artifactId>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 27b0d59..f6fc898 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,29 +2,29 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.test;version="1.21.0",
- org.eclipse.emf.ecp.ui.view.editor.test.model.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.view.editor.test.model.test.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.ui.view.editor.test.model.test.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.editor.controls;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.editor.handler;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.editor.controls;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.test;version="1.22.0",
+ org.eclipse.emf.ecp.ui.view.editor.test.model.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.editor.test.model.test.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.editor.test.model.test.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.editor.controls;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.editor.handler;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.editor.controls;version="1.22.0"
 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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
  org.apache.log4j;bundle-version="[1.2.15,2.0.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls.test
 Bundle-ActivationPolicy: lazy
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 3286f69..5ace925 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateSegmentDmrWizard_PTest.java b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateSegmentDmrWizard_PTest.java
index 4b0bd0d..266b9a2 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateSegmentDmrWizard_PTest.java
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateSegmentDmrWizard_PTest.java
@@ -51,7 +51,6 @@
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.swt.widgets.Widget;
@@ -144,8 +143,6 @@
 			segmentGenerator, null, true);
 		final WizardDialog wizardDialog = openWizard(testWizard);
 
-		assertEquals(WINDOW_TITLE, Display.getDefault().getActiveShell().getText());
-
 		final SWTBot bot = new SWTBot(wizardDialog.getShell());
 		assertFalse(bot.button(BACK).isEnabled());
 		assertFalse(bot.button(NEXT).isEnabled());
diff --git a/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 41582bc..76f261d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.view.linewrapper;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.ui.view.linewrapper.tests;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.ui.view.linewrapper;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.ui.view.linewrapper.tests;version="1.22.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 5025764..48b50a5 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ui.view.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/ECPSWTViewRendererTest.launch b/tests/org.eclipse.emf.ecp.ui.view.swt.test/ECPSWTViewRendererTest.launch
index 55452dd..de8e959 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.swt.test/ECPSWTViewRendererTest.launch
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/ECPSWTViewRendererTest.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.ui.view.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.ui.view.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,javax.servlet@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.9.1.v20180313-1559@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.9.1.v20180227-1645@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.xmlgraphics@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@default:default,org.eclipse.core.expressions@default:default,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.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.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,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.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.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.0.v200806040011@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.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@default:default,org.eclipse.emf.ecp.view.core.swt@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@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.ecp.view.vertical.ui.swt@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.domainexpander.default@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.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"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.batik.constants*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@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.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.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@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.net4j.util@default:default,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.text@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@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.0.v200806040011@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.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@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.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@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.ecp.view.vertical.ui.swt@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.domainexpander.default@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.segments@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.ui.view.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.swt.test/META-INF/MANIFEST.MF
index d314b7e..f9d5dbe 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,21 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: SWT Renderer Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.ui.view.spi.swt.selection.test;version="1.21.0",
- org.eclipse.emf.ecp.ui.view.swt;version="1.21.0",
- org.eclipse.emf.ecp.ui.view.swt.test;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.ui.view.internal.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.spi.swt.layout;version="1.22.0";uses:="org.hamcrest",
+ org.eclipse.emf.ecp.ui.view.spi.swt.masterdetail;version="1.22.0",
+ org.eclipse.emf.ecp.ui.view.spi.swt.selection.test;version="1.22.0";uses:="org.hamcrest,org.eclipse.jface.viewers",
+ org.eclipse.emf.ecp.ui.view.swt;version="1.22.0";
+  uses:="org.eclipse.emf.ecore,
+   org.osgi.framework,
+   org.eclipse.swt.widgets,
+   org.eclipse.emf.ecore.resource,
+   org.eclipse.emf.ecp.ui.view.swt.reference",
+ org.eclipse.emf.ecp.ui.view.swt.test;version="1.22.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.ecp.ui.view.swt.reference,
+   org.eclipse.emf.common.notify,
+   org.eclipse.emf.ecore.resource,
+   org.eclipse.emf.edit.domain"
 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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.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.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.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.ui.view.swt.test
+Import-Package: org.eclipse.emf.ecp.view.test.common.spi;version="[1.22.0,1.23.0)"
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 3b4b445..1fd89b7 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/internal/swt/ECPSWTViewImpl_PTest.java b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/internal/swt/ECPSWTViewImpl_PTest.java
new file mode 100644
index 0000000..1b5a01b
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/internal/swt/ECPSWTViewImpl_PTest.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ui.view.internal.swt;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import org.eclipse.emf.ecp.view.internal.swt.ECPSWTViewImpl;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.swt.widgets.Shell;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+/**
+ * Unit tests for the {@link ECPSWTViewImpl} class.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class ECPSWTViewImpl_PTest {
+
+	@Mock
+	private ViewModelContext context;
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public ECPSWTViewImpl_PTest() {
+		super();
+	}
+
+	@Test
+	public void instantiation() {
+		final ECPSWTViewImpl swtView = new ECPSWTViewImpl(shell, context);
+
+		verify(context).addContextUser(swtView);
+	}
+
+	@Test
+	public void dispose() {
+		final ECPSWTViewImpl swtView = new ECPSWTViewImpl(shell, context);
+
+		swtView.dispose();
+
+		assertThat("Shell not disposed", shell.isDisposed(), is(true));
+		verify(context, atLeastOnce()).removeContextUser(swtView);
+		verify(context, never()).dispose();
+	}
+
+	@Test
+	public void dispose_control() {
+		final ECPSWTViewImpl swtView = new ECPSWTViewImpl(shell, context);
+
+		shell.dispose();
+
+		verify(context).removeContextUser(swtView);
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+	}
+
+	@After
+	public void destroyShell() {
+		// Just in case
+		if (!shell.isDisposed()) {
+			shell.dispose();
+		}
+		shell = null;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/spi/swt/layout/PageLayout_PTest.java b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/spi/swt/layout/PageLayout_PTest.java
new file mode 100644
index 0000000..ff9d257
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/spi/swt/layout/PageLayout_PTest.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ui.view.spi.swt.layout;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assume.assumeThat;
+
+import org.eclipse.emf.ecp.view.spi.swt.layout.PageLayout;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Widget;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for the {@link PageLayout} class.
+ */
+public class PageLayout_PTest {
+
+	private Shell shell;
+	private ScrolledComposite scrollPane;
+	private Composite pageBook;
+	private PageLayout fixture;
+
+	private Label label;
+	private Table table;
+
+	/**
+	 * Initializes me.
+	 */
+	public PageLayout_PTest() {
+		super();
+	}
+
+	@Test
+	public void showPage() {
+		fixture.showPage(label);
+		updateScrollPane();
+
+		assertThat(fixture.getCurrentPage(), is(label));
+		assertThat(label, visible());
+		assertThat(table, not(visible()));
+
+		// No scroll bars
+		assertThat("Horizontal scroll bar visible", scrollPane.getHorizontalBar(), not(visible()));
+		assertThat("Vertical scroll bar visible", scrollPane.getVerticalBar(), not(visible()));
+
+		fixture.showPage(table);
+		updateScrollPane();
+
+		assertThat(fixture.getCurrentPage(), is(table));
+		assertThat(label, not(visible()));
+		assertThat(table, visible());
+
+		// Scroll bars
+		assertThat("Horizontal scroll bar not visible", scrollPane.getHorizontalBar(), visible());
+		assertThat("Vertical scroll bar not visible", scrollPane.getVerticalBar(), visible());
+
+		fixture.showPage(label);
+		updateScrollPane();
+
+		// No scroll bars again
+		assertThat("Horizontal scroll bar visible", scrollPane.getHorizontalBar(), not(visible()));
+		assertThat("Vertical scroll bar visible", scrollPane.getVerticalBar(), not(visible()));
+	}
+
+	@Test
+	public void disposeControl() {
+		fixture.showPage(label);
+
+		assumeThat(fixture.getCurrentPage(), is(label));
+		assumeThat(label, visible());
+		assumeThat(table, not(visible()));
+
+		label.dispose();
+
+		assertThat(fixture.getCurrentPage(), is(table));
+		assertThat(table, visible());
+
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createFixture() {
+		shell = new Shell();
+		shell.setLayout(new FillLayout());
+		scrollPane = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		pageBook = new Composite(scrollPane, SWT.NONE);
+		fixture = new PageLayout(pageBook);
+		scrollPane.setContent(pageBook);
+
+		shell.setSize(100, 100);
+		label = new Label(pageBook, SWT.NONE);
+		label.setText("A");
+		table = new Table(pageBook, SWT.NONE);
+		new TableColumn(table, SWT.LEFT).setWidth(300);
+		table.setItemCount(100);
+		scrollPane.setAlwaysShowScrollBars(false);
+		scrollPane.setExpandHorizontal(true);
+		scrollPane.setExpandVertical(true);
+
+		shell.open();
+	}
+
+	@After
+	public void destroyFixture() {
+		shell.dispose();
+	}
+
+	void updateScrollPane() {
+		scrollPane.setMinSize(pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+	}
+
+	Matcher<Widget> visible() {
+		return new TypeSafeMatcher<Widget>() {
+			@Override
+			public void describeTo(Description description) {
+				description.appendText("visible");
+			}
+
+			@Override
+			protected boolean matchesSafely(Widget item) {
+				if (item instanceof Control) {
+					return ((Control) item).isVisible();
+				} else if (item instanceof ScrollBar) {
+					return ((ScrollBar) item).isVisible();
+				}
+				return false;
+			}
+		};
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/spi/swt/masterdetail/DetailViewManager_PTest.java b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/spi/swt/masterdetail/DetailViewManager_PTest.java
new file mode 100644
index 0000000..eac284f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/spi/swt/masterdetail/DetailViewManager_PTest.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ui.view.spi.swt.masterdetail;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailRenderingFunction;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewCache;
+import org.eclipse.emf.ecp.view.spi.swt.masterdetail.DetailViewManager;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/**
+ * Unit tests for the {@link DetailViewManager} class.
+ */
+@RunWith(EMFMockingRunner.class)
+public class DetailViewManager_PTest {
+
+	@Mock
+	private ViewModelContext context;
+
+	@EMock
+	private EObject detailObject;
+
+	@EMock
+	private VView detailView;
+
+	@Mock
+	private DetailViewCache cache;
+
+	@Mock
+	private ECPSWTView renderedDetail;
+
+	@Mock
+	private DetailRenderingFunction renderer;
+
+	private Shell shell;
+	private Control detailControl;
+	private DetailViewManager manager;
+
+	/**
+	 * Initializes me.
+	 */
+	public DetailViewManager_PTest() {
+		super();
+	}
+
+	@Test
+	public void render() throws ECPRendererException {
+		manager.render(context, renderer);
+
+		verify(cache).isCached(detailObject);
+		verify(renderer).render(any(), argThat(is(context)));
+	}
+
+	@Test
+	public void cacheCurrentDetail() {
+		manager.render(context, renderer);
+		manager.cacheCurrentDetail();
+
+		verify(cache).cacheView(renderedDetail);
+	}
+
+	@Test
+	public void setDetailReadOnly() throws ECPRendererException {
+		manager.render(context, renderer);
+		manager.setDetailReadOnly(true);
+
+		verify(cache).clear();
+		verify(renderer, times(2)).render(any(), argThat(is(context)));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createTestFixture() {
+		shell = new Shell();
+		manager = new DetailViewManager(shell, __ -> detailView);
+		manager.setCache(cache);
+	}
+
+	@Before
+	public void configureMocks() throws ECPRendererException {
+		when(context.getDomainModel()).thenReturn(detailObject);
+		when(context.getViewModel()).thenReturn(detailView);
+
+		when(renderer.render(any(), any())).then(invocation -> {
+			if (detailControl == null) {
+				detailControl = new Label((Composite) invocation.getArguments()[0], SWT.NONE);
+				when(renderedDetail.getSWTControl()).thenReturn(detailControl);
+				when(renderedDetail.getViewModelContext()).thenReturn(context);
+			}
+			return renderedDetail;
+		});
+	}
+
+	@After
+	public void destroyTestFixture() {
+		manager.dispose();
+		manager = null;
+
+		shell.dispose();
+		shell = null;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService_PTest.java b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService_PTest.java
index 8adfe32..624ae7a 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService_PTest.java
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/DefaultReferenceService_PTest.java
@@ -453,7 +453,6 @@
 		}
 	}
 
-	@SuppressWarnings("unchecked")
 	private void registerReferenceCustomizations() {
 
 		registrations = Arrays.asList(
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/test/AllTests.java b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/test/AllTests.java
index ea250d0..bf64be1 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/src/org/eclipse/emf/ecp/ui/view/swt/test/AllTests.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 2.0
@@ -10,12 +10,15 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bug 529542
+ * Christian W. Damus - bugs 529542, 527686, 549565
  *
  *******************************************************************************/
 
 package org.eclipse.emf.ecp.ui.view.swt.test;
 
+import org.eclipse.emf.ecp.ui.view.internal.swt.ECPSWTViewImpl_PTest;
+import org.eclipse.emf.ecp.ui.view.spi.swt.layout.PageLayout_PTest;
+import org.eclipse.emf.ecp.ui.view.spi.swt.masterdetail.DetailViewManager_PTest;
 import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService_PTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
@@ -27,7 +30,10 @@
 @RunWith(Suite.class)
 @Suite.SuiteClasses({ ECPSWTViewRenderer_PTest.class,
 	DefaultReferenceService_PTest.class,
-	DefaultCreateNewModelElementStrategyProvider_PTest.class
+	DefaultCreateNewModelElementStrategyProvider_PTest.class,
+	PageLayout_PTest.class,
+	ECPSWTViewImpl_PTest.class,
+	DetailViewManager_PTest.class,
 })
 public class AllTests {
 
diff --git a/tests/org.eclipse.emf.ecp.ui.view.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.ui.view.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.ui.view.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 fd417bd..5f555a9 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.21.0.qualifier
-Export-Package: org.eclipse.emf.ecp.ui.view.test;version="1.21.0"
+Bundle-Version: 1.22.0.qualifier
+Export-Package: org.eclipse.emf.ecp.ui.view.test;version="1.22.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="4.10.0",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.ecore;bundle-version="2.8.0",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.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 4125680..f32adc6 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 455a608..af8c484 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Diagnostician Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.diagnostician.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.validation.diagnostician.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.validation.diagnostician.test;version="1.22.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)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
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 5b2bd6e..2e30ce0 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.validation.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.validation.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.validation.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.validation.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ab7d11b..25299bb 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.validation.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.validation.test.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.validation.test.test.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.validation.test.test.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.validation.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.test.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.test.test.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.test.test.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.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 2f03c56..2efb7ab 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f2b2d7e..2b9ed0d 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,11 +2,11 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.categorization.model.edit.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.categorization.model.edit.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.22.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)"
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 62a699b..5ac40a2 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/CategorizationTests.launch b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/CategorizationTests.launch
index c7390b0..1a5edf0 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/CategorizationTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/CategorizationTests.launch
@@ -33,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.sdk.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.7.0.v201011041433@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@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.core.commands@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.expressions@default:default,org.eclipse.core.jobs@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.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.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,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.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.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.0.v200806040011@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.test.model@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.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt.test@default:false,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.rule@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.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.emfforms.common.validation@default:default,org.eclipse.emfforms.common@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@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.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.extension@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@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*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@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.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.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@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.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.text@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.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.0.v200806040011@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.test.model@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.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt.test@default:false,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.label.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.rule@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.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.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.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default@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.segments@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.extension@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.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.categorization.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/META-INF/MANIFEST.MF
index aa26cd6..425d835 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,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Categorization Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.swt.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.categorization.swt.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.21.0"
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.categorization.swt.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.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"
+Import-Package: org.eclipse.emf.ecp.test.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.spi;version="[1.22.0,1.23.0)",
+ 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 610a534..a24eb7f 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/AllTests.java
index 22e0d74..898619f 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/AllTests.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 2.0
@@ -10,10 +10,12 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.categorization.swt.test;
 
 import org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationRenderer_PTest;
+import org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationRevealProvider_PTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
@@ -21,7 +23,9 @@
 @RunWith(Suite.class)
 @SuiteClasses({ Categorization_PTest.class, CategorizationCorrectTester_PTest.class,
 	CategorizationTreeContentRefresh_PTest.class, CategorizationTreeRefresh_PTest.class,
-	CategorizationRenderer_PTest.class })
+	CategorizationRenderer_PTest.class,
+	CategorizationRevealProvider_PTest.class,
+})
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRevealProvider_PTest.java b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRevealProvider_PTest.java
new file mode 100644
index 0000000..1170953
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRevealProvider_PTest.java
@@ -0,0 +1,235 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.categorization.swt;
+
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.eMock;
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.withESettings;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import java.util.ArrayList;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationRevealProvider;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationFactory;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VContainedContainer;
+import org.eclipse.emf.ecp.view.spi.model.VContainer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.swt.widgets.Shell;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests covering the {@link CategorizationRevealProvider} class.
+ */
+@RunWith(EMFMockingRunner.class)
+public class CategorizationRevealProvider_PTest {
+
+	@ViewModel
+	private final VCategorizationElement categorizations = VCategorizationFactory.eINSTANCE
+		.createCategorizationElement();
+
+	@EMock
+	@DomainModel
+	private EObject rootObject;
+
+	@EMock
+	private EObject obj1;
+
+	@EMock
+	private EObject obj2;
+
+	private VCategorization mid1;
+	private VCategory cat1;
+	private VCategory cat2;
+	private VCategory cat3;
+
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<ViewModelContext> fixture = EMFFormsRevealServiceFixture.create(
+		ViewModelContext.class, this);
+
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public CategorizationRevealProvider_PTest() {
+		super();
+	}
+
+	@Test
+	public void revealInTree() {
+		final VContainer container = (VContainer) cat3.getComposite();
+
+		final Runnable reveal = mock(Runnable.class);
+
+		final EMFFormsRevealProvider compositeRevealer = new EMFFormsRevealProvider() {
+			@Bid
+			public Double bid(VElement view, EObject model) {
+				return view == container && model == obj1 ? Double.MAX_VALUE : null;
+			}
+
+			@Create
+			public RevealStep create(VElement view, EObject model) {
+				return view == container && model == obj1
+					? RevealStep.reveal(view, model, reveal)
+					: RevealStep.fail();
+			}
+		};
+		fixture.addRevealProvider(compositeRevealer);
+
+		render();
+
+		fixture.reveal(obj1);
+
+		assertThat("The category was not selected", categorizations.getCurrentSelection(), is(cat3));
+
+		verify(reveal).run();
+	}
+
+	@Test
+	public void revealInTreeNested() {
+		// Introduce a couple of intermediary layers of categorization
+		final VCategorization int1 = VCategorizationFactory.eINSTANCE.createCategorization();
+		final VCategorization int2 = VCategorizationFactory.eINSTANCE.createCategorization();
+		int1.getCategorizations().add(int2);
+		int2.getCategorizations().addAll(new ArrayList<>(categorizations.getCategorizations()));
+		categorizations.getCategorizations().add(int1);
+
+		final VContainer container = (VContainer) cat3.getComposite();
+
+		final Runnable reveal = mock(Runnable.class);
+
+		final EMFFormsRevealProvider compositeRevealer = new EMFFormsRevealProvider() {
+			@Bid
+			public Double bid(VElement view, EObject model) {
+				return view == container && model == obj1 ? Double.MAX_VALUE : null;
+			}
+
+			@Create
+			public RevealStep create(VElement view, EObject model) {
+				return view == container && model == obj1
+					? RevealStep.reveal(view, model, reveal)
+					: RevealStep.fail();
+			}
+		};
+		fixture.addRevealProvider(compositeRevealer);
+
+		render();
+
+		fixture.reveal(obj1);
+
+		assertThat("The category was not selected", categorizations.getCurrentSelection(), is(cat3));
+
+		verify(reveal).run();
+	}
+
+	@Test
+	public void revealInTabs() {
+		// Render mid1 and cat3 in tabs
+		categorizations.setMainCategoryDepth(1);
+
+		final VContainer container = (VContainer) cat2.getComposite();
+
+		final Runnable reveal = mock(Runnable.class);
+
+		final EMFFormsRevealProvider compositeRevealer = new EMFFormsRevealProvider() {
+			@Bid
+			public Double bid(VElement view, EObject model) {
+				return view == container && model == obj2 ? Double.MAX_VALUE : null;
+			}
+
+			@Create
+			public RevealStep create(VElement view, EObject model) {
+				return view == container && model == obj2
+					? RevealStep.reveal(view, model, reveal)
+					: RevealStep.fail();
+			}
+		};
+		fixture.addRevealProvider(compositeRevealer);
+
+		render();
+
+		fixture.reveal(obj2);
+
+		assertThat("The category was not selected", categorizations.getCurrentSelection(), is(cat2));
+
+		verify(reveal).run();
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createViewModel() {
+		mid1 = VCategorizationFactory.eINSTANCE.createCategorization();
+		cat1 = VCategorizationFactory.eINSTANCE.createCategory();
+		cat2 = VCategorizationFactory.eINSTANCE.createCategory();
+		cat3 = VCategorizationFactory.eINSTANCE.createCategory();
+
+		mid1.getCategorizations().add(cat1);
+		mid1.getCategorizations().add(cat2);
+
+		categorizations.getCategorizations().add(mid1);
+		categorizations.getCategorizations().add(cat3);
+
+		VContainedContainer container = eMock(VContainedContainer.class, withESettings().eContents().eContainer(cat1));
+		cat1.setComposite(container);
+		container = eMock(VContainedContainer.class, withESettings().eContents().eContainer(cat2));
+		cat2.setComposite(container);
+		container = eMock(VContainedContainer.class, withESettings().eContents().eContainer(cat3));
+		cat3.setComposite(container);
+	}
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	void render() {
+		SWTViewTestHelper.render(fixture.getViewContext(), shell);
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 873bf70..c9c2138 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Compound Control SWT Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.swt.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.compoundcontrol.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.view.compoundcontrol.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.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",
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 836912d..cfad571 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
   
   <build>
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.context.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.context.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/AllIntegrationTests ecp.view.context.launch b/tests/org.eclipse.emf.ecp.view.context.tests/AllIntegrationTests ecp.view.context.launch
index 04fdab6..5198255 100644
--- a/tests/org.eclipse.emf.ecp.view.context.tests/AllIntegrationTests ecp.view.context.launch
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/AllIntegrationTests ecp.view.context.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.emf.ecp.view.context.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="org.apache.felix.scr@default:default,org.eclipse.core.contenttype@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.emf.emfstore.examplemodel@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi.compatibility.state@default:false,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.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.domainexpander.default@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"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@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.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di@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.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi.compatibility.state@default:false,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.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@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"/>
 <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.context.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.context.tests/META-INF/MANIFEST.MF
index de32930..bae8d5b 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.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.context.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.context;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.context.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.context;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.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 0cd07a0..68d0cf8 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/context/tests/AllIntegrationTests.java b/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/context/tests/AllIntegrationTests.java
index 3d2f24e..d405dc4 100644
--- a/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/context/tests/AllIntegrationTests.java
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/context/tests/AllIntegrationTests.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 2.0
@@ -10,16 +10,21 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.context.tests;
 
+import org.eclipse.emf.ecp.view.internal.context.ViewModelContextContextFunction_ITest;
 import org.eclipse.emf.ecp.view.internal.context.ViewModelContextImpl_ITest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
-@SuiteClasses({ ViewModelContextImpl_ITest.class })
+@SuiteClasses({
+	ViewModelContextImpl_ITest.class,
+	ViewModelContextContextFunction_ITest.class,
+})
 public class AllIntegrationTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextContextFunction_ITest.java b/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextContextFunction_ITest.java
new file mode 100644
index 0000000..01a5ed7
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextContextFunction_ITest.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.context;
+
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.CoreMatchers.sameInstance;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * Integration tests for the context function that casts the
+ * {@link EMFFormsViewContext} value as {@link ViewModelContext} when
+ * it is such.
+ */
+public class ViewModelContextContextFunction_ITest {
+
+	private IEclipseContext e4Context;
+
+	/**
+	 * Initializes me.
+	 */
+	public ViewModelContextContextFunction_ITest() {
+		super();
+	}
+
+	@Test
+	public void successCase() {
+		final EMFFormsViewContext viewContext = mock(ViewModelContext.class);
+		e4Context.set(EMFFormsViewContext.class, viewContext);
+
+		assertThat(e4Context.get(ViewModelContext.class), sameInstance(viewContext));
+	}
+
+	@Test
+	public void failureCase() {
+		final EMFFormsViewContext viewContext = mock(EMFFormsViewContext.class);
+		e4Context.set(EMFFormsViewContext.class, viewContext);
+
+		assertThat(e4Context.get(EMFFormsViewContext.class), sameInstance(viewContext));
+		assertThat(e4Context.get(ViewModelContext.class), nullValue());
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createContext() {
+		final Bundle self = FrameworkUtil.getBundle(ViewModelContextContextFunction_ITest.class);
+		e4Context = EclipseContextFactory.createServiceContext(self.getBundleContext());
+	}
+
+	@After
+	public void destroyContext() {
+		e4Context.dispose();
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl_ITest.java b/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl_ITest.java
index 4625f14..fc1cd63 100644
--- a/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl_ITest.java
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/src/org/eclipse/emf/ecp/view/internal/context/ViewModelContextImpl_ITest.java
@@ -10,21 +10,29 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bugs 527740, 545686
+ * Christian W. Damus - bugs 527740, 545686, 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.context;
 
+import static org.hamcrest.CoreMatchers.anything;
+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.CoreMatchers.notNullValue;
 import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.CoreMatchers.sameInstance;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assume.assumeThat;
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.argThat;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.inOrder;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -36,23 +44,35 @@
 import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
 
+import org.eclipse.emf.common.notify.Adapter;
+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.EcoreFactory;
 import org.eclipse.emf.ecp.view.spi.context.EMFFormsLegacyServicesManager;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelServiceProvider;
+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.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
 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.eclipse.emfforms.spi.core.services.view.RootDomainModelChangeListener;
+import org.hamcrest.FeatureMatcher;
+import org.hamcrest.Matcher;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -879,6 +899,7 @@
 		context.dispose();
 	}
 
+	@SuppressWarnings("nls")
 	@Test
 	public void testContextDispose() {
 		final EObject model = EcoreFactory.eINSTANCE.createEObject();
@@ -903,6 +924,12 @@
 
 		assertSame(childContext1, childContextToRemove1);
 		assertSame(childContext2, childContextToRemove2);
+
+		context.dispose();
+
+		assertThat("Context not disposed", view.eAdapters(), not(hasItem(anything())));
+		assertThat("Child context not disposed", childView1.eAdapters(), not(hasItem(anything())));
+		assertThat("Second child context not disposed", childView2.eAdapters(), not(hasItem(anything())));
 	}
 
 	/**
@@ -1005,6 +1032,118 @@
 		}
 	}
 
+	/**
+	 * Verify that we can change the domain model of a child context and not lose track of it.
+	 */
+	@SuppressWarnings("nls")
+	@Test
+	public void testChangeDomainModelOfChildContext() {
+		final EMFFormsContextListener rootListener = mock(EMFFormsContextListener.class);
+		final EMFFormsContextListener childListener = mock(EMFFormsContextListener.class);
+		final ViewModelContextDisposeListener disposeListener = mock(ViewModelContextDisposeListener.class);
+		final RootDomainModelChangeListener changeListener = mock(RootDomainModelChangeListener.class);
+
+		final EObject root = EcoreFactory.eINSTANCE.createEObject();
+		final EObject object1 = EcoreFactory.eINSTANCE.createEObject();
+		final EObject object2 = EcoreFactory.eINSTANCE.createEObject();
+		final VView rootView = VViewFactory.eINSTANCE.createView();
+		final VElement parentView = VViewFactory.eINSTANCE.createControl();
+		final VView view = VViewFactory.eINSTANCE.createView();
+
+		final ViewModelContext context = ViewModelContextFactory.INSTANCE.createViewModelContext(
+			rootView, root);
+		context.registerEMFFormsContextListener(rootListener);
+
+		final ViewModelContext child = context.getChildContext(object1, parentView, view);
+		child.registerEMFFormsContextListener(childListener);
+		child.registerRootDomainModelChangeListener(changeListener);
+		child.registerDisposeListener(disposeListener);
+
+		assumeThat("Wrong domain model", child.getDomainModel(), is(object1));
+
+		final List<Adapter> viewAdapters = view.eAdapters();
+		final List<Adapter> domainAdapters = object1.eAdapters();
+
+		child.changeDomainModel(object2);
+
+		assertThat("Wrong domain model", child.getDomainModel(), is(object2));
+
+		// We don't actually ViewModelContext-ly dispose and drop the child context,
+		// but only EMFFormsViewContext-ly
+		verify(rootListener).childContextDisposed(child);
+		verify(disposeListener, never()).contextDisposed(any());
+
+		final InOrder inOrder = inOrder(rootListener, childListener, changeListener);
+		inOrder.verify(rootListener).childContextAdded(parentView, child);
+		inOrder.verify(childListener).contextDispose();
+		inOrder.verify(rootListener).childContextDisposed(child);
+		inOrder.verify(rootListener).childContextAdded(parentView, child);
+		inOrder.verify(childListener).contextInitialised();
+		inOrder.verify(changeListener).notifyChange();
+
+		assertThat("Parent created new child context", context.getChildContext(object2, parentView, view),
+			sameInstance(child));
+		assertThat("View model adapters changed", view.eAdapters(), is(viewAdapters));
+		assertThat("Wrong domain model adapters", object2.eAdapters(),
+			hasItems(domainAdapters.toArray(new Adapter[0])));
+	}
+
+	/**
+	 * Verify that we can change the domain model of a child context and not lose track of it.
+	 */
+	@SuppressWarnings("nls")
+	@Test
+	public void testChildContextDomainModelListeners() {
+		final EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		ePackage.setName("foo");
+		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
+		eClass.setName("Foo");
+		final EAttribute eAttribute = EcoreFactory.eINSTANCE.createEAttribute();
+		eAttribute.setName("a");
+		eClass.getEStructuralFeatures().add(eAttribute);
+		ePackage.getEClassifiers().add(eClass);
+
+		final VView rootView = VViewFactory.eINSTANCE.createView();
+		final VElement parentView = VViewFactory.eINSTANCE.createControl();
+		final VView view = VViewFactory.eINSTANCE.createView();
+
+		final ViewModelContext context = ViewModelContextFactory.INSTANCE.createViewModelContext(
+			rootView, ePackage);
+		final ViewModelContext childContext = context.getChildContext(eAttribute, parentView, view);
+
+		final ModelChangeAddRemoveListener domainListener = mock(ModelChangeAddRemoveListener.class);
+		childContext.registerDomainChangeListener(domainListener);
+
+		// This is the correct usage pattern, and necessary for removal of the listener
+		childContext.registerDisposeListener(ctx -> ctx.unregisterDomainChangeListener(domainListener));
+
+		verify(domainListener).notifyAdd(eAttribute);
+		verify(domainListener).notifyAdd(ePackage);
+
+		childContext.dispose();
+
+		verify(domainListener).notifyRemove(eAttribute);
+		verify(domainListener).notifyRemove(ePackage);
+
+		ePackage.setName("bar");
+
+		verify(domainListener, never()).notifyChange(argThat(notificationFrom(ePackage)));
+	}
+
+	//
+	// Test framework
+	//
+
+	Matcher<ModelChangeNotification> notificationFrom(EObject notifier) {
+		return new FeatureMatcher<ModelChangeNotification, EObject>(is(notifier), "notifier", "notifier") { //$NON-NLS-1$//$NON-NLS-2$
+
+			@Override
+			protected EObject featureValueOf(ModelChangeNotification actual) {
+				return actual.getNotifier();
+			}
+		};
+	}
+
 	//
 	// Nested types
 	//
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1cb0708..d6b70ba 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,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Multi Reference Control Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.control.multireference.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.control.multireference.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.control.multireference;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.control.multireference.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.control.multireference;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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)"
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 a282bd6..53574dd 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.core.swt.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch
index 5109b44..7fc5c3e 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.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.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.200.v20190216-1545@default:default,org.eclipse.core.databinding.beans*1.4.400.v20190131-1604@default:default,org.eclipse.core.databinding.observable*1.6.400.v20190218-2049@default:default,org.eclipse.core.databinding.property*1.6.400.v20190215-1957@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.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.registry@default:default,org.eclipse.equinox.util@default:default,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.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@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.0.v200806040011@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.core.swt.tests@default:false,org.eclipse.emf.ecp.view.core.swt@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@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.vertical.model@default:default,org.eclipse.emfforms.common.prevalidation@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.domainexpander.default@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.segments@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.common.test@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.model.localization@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*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.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.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.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.registry@default:default,org.eclipse.equinox.util@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.net4j.util@default:default,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.text@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@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.0.v200806040011@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.core.swt.tests@default:false,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.label.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.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@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.vertical.model@default:default,org.eclipse.emfforms.common.prevalidation@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.domainexpander.default@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.segments@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.common.test@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.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.core.swt.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.core.swt.tests/META-INF/MANIFEST.MF
index a857825..ddec532 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,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt.tests;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.core.swt.test.model;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.core.swt.test.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.core.swt.test.model.provider;version="1.21.0",
- org.eclipse.emf.ecp.view.core.swt.test.model.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.core.swt.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.core.swt;version="1.21.0",
- org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.core.swt.test.model;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.core.swt.test.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.core.swt.test.model.provider;version="1.22.0",
+ org.eclipse.emf.ecp.view.core.swt.test.model.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.core.swt.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.core.swt;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.22.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
@@ -25,14 +25,14 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.0)",
  org.objenesis;bundle-version="1.0.0",
- org.eclipse.emfforms.swt.common.test;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.common.test;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/icons/full/ctool16/CreateSimpleTestObject_inner_InnerObject.gif b/tests/org.eclipse.emf.ecp.view.core.swt.tests/icons/full/ctool16/CreateSimpleTestObject_inner_InnerObject.gif
new file mode 100644
index 0000000..7cb2132
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/icons/full/ctool16/CreateSimpleTestObject_inner_InnerObject.gif
Binary files differ
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/icons/full/obj16/InnerObject.gif b/tests/org.eclipse.emf.ecp.view.core.swt.tests/icons/full/obj16/InnerObject.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/icons/full/obj16/InnerObject.gif
Binary files differ
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.ecore b/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.ecore
index 6acb4b5..1fe2981 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.ecore
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.ecore
@@ -5,6 +5,8 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="xmlDate" eType="#//XMLDate"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="myEnum" eType="#//TestEnum"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inner" eType="#//InnerObject"
+        containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="TestEnum" instanceTypeName="TestEnum">
     <eLiterals name="a">
@@ -17,4 +19,7 @@
     <eLiterals name="d" value="3" literal="d"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="XMLDate" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"/>
+  <eClassifiers xsi:type="ecore:EClass" name="InnerObject">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="myEnum" eType="#//TestEnum"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.genmodel b/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.genmodel
index 8f3c261..4e1e79d 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.genmodel
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/model/test.genmodel
@@ -4,7 +4,7 @@
     modelDirectory="/org.eclipse.emf.ecp.view.core.swt.tests/src" editDirectory="/org.eclipse.emf.ecp.view.core.swt.tests/src"
     modelPluginID="org.eclipse.emf.ecp.view.core.swt.tests" modelName="Test" nonNLSMarkers="true"
     rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
     editPluginID="org.eclipse.emf.ecp.view.core.swt.tests" operationReflection="true"
     importOrganizing="true" cleanup="true">
   <foreignModel>test.ecore</foreignModel>
@@ -23,6 +23,10 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//SimpleTestObject/date"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//SimpleTestObject/xmlDate"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//SimpleTestObject/myEnum"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference test.ecore#//SimpleTestObject/inner"/>
+    </genClasses>
+    <genClasses ecoreClass="test.ecore#//InnerObject">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//InnerObject/myEnum"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.properties b/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.properties
index a89a4f6..d11858f 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.properties
@@ -20,3 +20,6 @@
 _UI_TestEnum_b_literal = b
 _UI_TestEnum_c_literal = c
 _UI_TestEnum_d_literal = d
+_UI_InnerObject_type = Inner Object
+_UI_SimpleTestObject_inner_feature = Inner
+_UI_InnerObject_myEnum_feature = My Enum
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 f9d10d8..882be6d 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/InnerObject.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/InnerObject.java
new file mode 100644
index 0000000..4c81a32
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/InnerObject.java
@@ -0,0 +1,64 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
+ */
+package org.eclipse.emf.ecp.view.core.swt.test.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inner Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject#getMyEnum <em>My Enum</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getInnerObject()
+ * @model
+ * @generated
+ */
+public interface InnerObject extends EObject {
+	/**
+	 * Returns the value of the '<em><b>My Enum</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>My Enum</em>' attribute.
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum
+	 * @see #setMyEnum(TestEnum)
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getInnerObject_MyEnum()
+	 * @model dataType="org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum"
+	 * @generated
+	 */
+	TestEnum getMyEnum();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject#getMyEnum <em>My
+	 * Enum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>My Enum</em>' attribute.
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum
+	 * @see #getMyEnum()
+	 * @generated
+	 */
+	void setMyEnum(TestEnum value);
+
+} // InnerObject
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/SimpleTestObject.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/SimpleTestObject.java
index 28d200b..fd9379d 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/SimpleTestObject.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/SimpleTestObject.java
@@ -32,6 +32,7 @@
  * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getDate <em>Date</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getXmlDate <em>Xml Date</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getMyEnum <em>My Enum</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getInner <em>Inner</em>}</li>
  * </ul>
  *
  * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getSimpleTestObject()
@@ -128,4 +129,29 @@
 	 */
 	void setMyEnum(TestEnum value);
 
+	/**
+	 * Returns the value of the '<em><b>Inner</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Inner</em>' containment reference.
+	 * @see #setInner(InnerObject)
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getSimpleTestObject_Inner()
+	 * @model containment="true"
+	 * @generated
+	 */
+	InnerObject getInner();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getInner
+	 * <em>Inner</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Inner</em>' containment reference.
+	 * @see #getInner()
+	 * @generated
+	 */
+	void setInner(InnerObject value);
+
 } // SimpleTestObject
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestFactory.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestFactory.java
index 567255d..c37f2ca 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestFactory.java
@@ -46,6 +46,16 @@
 	SimpleTestObject createSimpleTestObject();
 
 	/**
+	 * Returns a new object of class '<em>Inner Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Inner Object</em>'.
+	 * @generated
+	 */
+	InnerObject createInnerObject();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestPackage.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestPackage.java
index 68ea335..8df3e44 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestPackage.java
@@ -19,6 +19,7 @@
 import org.eclipse.emf.ecore.EDataType;
 import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
 
 /**
  * <!-- begin-user-doc -->
@@ -117,6 +118,16 @@
 	int SIMPLE_TEST_OBJECT__MY_ENUM = 2;
 
 	/**
+	 * The feature id for the '<em><b>Inner</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int SIMPLE_TEST_OBJECT__INNER = 3;
+
+	/**
 	 * The number of structural features of the '<em>Simple Test Object</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124,7 +135,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIMPLE_TEST_OBJECT_FEATURE_COUNT = 3;
+	int SIMPLE_TEST_OBJECT_FEATURE_COUNT = 4;
 
 	/**
 	 * The number of operations of the '<em>Simple Test Object</em>' class.
@@ -137,6 +148,48 @@
 	int SIMPLE_TEST_OBJECT_OPERATION_COUNT = 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.InnerObjectImpl <em>Inner
+	 * Object</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.InnerObjectImpl
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getInnerObject()
+	 * @generated
+	 */
+	int INNER_OBJECT = 1;
+
+	/**
+	 * The feature id for the '<em><b>My Enum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INNER_OBJECT__MY_ENUM = 0;
+
+	/**
+	 * The number of structural features of the '<em>Inner Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INNER_OBJECT_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Inner Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INNER_OBJECT_OPERATION_COUNT = 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum <em>Enum</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -145,7 +198,7 @@
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getTestEnum()
 	 * @generated
 	 */
-	int TEST_ENUM = 1;
+	int TEST_ENUM = 2;
 
 	/**
 	 * The meta object id for the '<em>XML Date</em>' data type.
@@ -156,7 +209,7 @@
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getXMLDate()
 	 * @generated
 	 */
-	int XML_DATE = 2;
+	int XML_DATE = 3;
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject
@@ -210,6 +263,44 @@
 	EAttribute getSimpleTestObject_MyEnum();
 
 	/**
+	 * Returns the meta object for the containment reference
+	 * '{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getInner <em>Inner</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>Inner</em>'.
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getInner()
+	 * @see #getSimpleTestObject()
+	 * @generated
+	 */
+	EReference getSimpleTestObject_Inner();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject <em>Inner
+	 * Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Inner Object</em>'.
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject
+	 * @generated
+	 */
+	EClass getInnerObject();
+
+	/**
+	 * Returns the meta object for the attribute
+	 * '{@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject#getMyEnum <em>My Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>My Enum</em>'.
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject#getMyEnum()
+	 * @see #getInnerObject()
+	 * @generated
+	 */
+	EAttribute getInnerObject_MyEnum();
+
+	/**
 	 * Returns the meta object for enum '{@link org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum <em>Enum</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -298,6 +389,36 @@
 		EAttribute SIMPLE_TEST_OBJECT__MY_ENUM = eINSTANCE.getSimpleTestObject_MyEnum();
 
 		/**
+		 * The meta object literal for the '<em><b>Inner</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference SIMPLE_TEST_OBJECT__INNER = eINSTANCE.getSimpleTestObject_Inner();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.InnerObjectImpl
+		 * <em>Inner Object</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.InnerObjectImpl
+		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getInnerObject()
+		 * @generated
+		 */
+		EClass INNER_OBJECT = eINSTANCE.getInnerObject();
+
+		/**
+		 * The meta object literal for the '<em><b>My Enum</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute INNER_OBJECT__MY_ENUM = eINSTANCE.getInnerObject_MyEnum();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum <em>Enum</em>}'
 		 * enum.
 		 * <!-- begin-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/InnerObjectImpl.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/InnerObjectImpl.java
new file mode 100644
index 0000000..c17532c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/InnerObjectImpl.java
@@ -0,0 +1,179 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
+ */
+package org.eclipse.emf.ecp.view.core.swt.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.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
+import org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum;
+import org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Inner Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.InnerObjectImpl#getMyEnum <em>My Enum</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InnerObjectImpl extends MinimalEObjectImpl.Container implements InnerObject {
+	/**
+	 * The cached value of the '{@link #getMyEnum() <em>My Enum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getMyEnum()
+	 * @generated
+	 * @ordered
+	 */
+	protected TestEnum myEnum;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected InnerObjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestPackage.Literals.INNER_OBJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public TestEnum getMyEnum() {
+		return myEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setMyEnum(TestEnum newMyEnum) {
+		final TestEnum oldMyEnum = myEnum;
+		myEnum = newMyEnum == null ? null : newMyEnum;
+		if (eNotificationRequired()) {
+			eNotify(
+				new ENotificationImpl(this, Notification.SET, TestPackage.INNER_OBJECT__MY_ENUM, oldMyEnum, myEnum));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case TestPackage.INNER_OBJECT__MY_ENUM:
+			return getMyEnum();
+		}
+		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.INNER_OBJECT__MY_ENUM:
+			setMyEnum((TestEnum) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case TestPackage.INNER_OBJECT__MY_ENUM:
+			setMyEnum((TestEnum) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case TestPackage.INNER_OBJECT__MY_ENUM:
+			return myEnum != null;
+		}
+		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(" (myEnum: "); //$NON-NLS-1$
+		result.append(myEnum);
+		result.append(')');
+		return result.toString();
+	}
+
+} // InnerObjectImpl
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/SimpleTestObjectImpl.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/SimpleTestObjectImpl.java
index 0618638..e062f3e 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/SimpleTestObjectImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/SimpleTestObjectImpl.java
@@ -19,9 +19,12 @@
 import javax.xml.datatype.XMLGregorianCalendar;
 
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage;
@@ -37,6 +40,7 @@
  * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.SimpleTestObjectImpl#getDate <em>Date</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.SimpleTestObjectImpl#getXmlDate <em>Xml Date</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.SimpleTestObjectImpl#getMyEnum <em>My Enum</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.core.swt.test.model.impl.SimpleTestObjectImpl#getInner <em>Inner</em>}</li>
  * </ul>
  *
  * @generated
@@ -98,6 +102,17 @@
 	protected TestEnum myEnum;
 
 	/**
+	 * The cached value of the '{@link #getInner() <em>Inner</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getInner()
+	 * @generated
+	 * @ordered
+	 */
+	protected InnerObject inner;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -205,6 +220,81 @@
 	 * @generated
 	 */
 	@Override
+	public InnerObject getInner() {
+		return inner;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetInner(InnerObject newInner, NotificationChain msgs) {
+		final InnerObject oldInner = inner;
+		inner = newInner;
+		if (eNotificationRequired()) {
+			final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+				TestPackage.SIMPLE_TEST_OBJECT__INNER, oldInner, newInner);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setInner(InnerObject newInner) {
+		if (newInner != inner) {
+			NotificationChain msgs = null;
+			if (inner != null) {
+				msgs = ((InternalEObject) inner).eInverseRemove(this,
+					EOPPOSITE_FEATURE_BASE - TestPackage.SIMPLE_TEST_OBJECT__INNER, null, msgs);
+			}
+			if (newInner != null) {
+				msgs = ((InternalEObject) newInner).eInverseAdd(this,
+					EOPPOSITE_FEATURE_BASE - TestPackage.SIMPLE_TEST_OBJECT__INNER, null, msgs);
+			}
+			msgs = basicSetInner(newInner, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		} else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.SIMPLE_TEST_OBJECT__INNER, newInner,
+				newInner));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case TestPackage.SIMPLE_TEST_OBJECT__INNER:
+			return basicSetInner(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 		case TestPackage.SIMPLE_TEST_OBJECT__DATE:
@@ -213,6 +303,8 @@
 			return getXmlDate();
 		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
 			return getMyEnum();
+		case TestPackage.SIMPLE_TEST_OBJECT__INNER:
+			return getInner();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -235,6 +327,9 @@
 		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
 			setMyEnum((TestEnum) newValue);
 			return;
+		case TestPackage.SIMPLE_TEST_OBJECT__INNER:
+			setInner((InnerObject) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -257,6 +352,9 @@
 		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
 			setMyEnum((TestEnum) null);
 			return;
+		case TestPackage.SIMPLE_TEST_OBJECT__INNER:
+			setInner((InnerObject) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -276,6 +374,8 @@
 			return XML_DATE_EDEFAULT == null ? xmlDate != null : !XML_DATE_EDEFAULT.equals(xmlDate);
 		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
 			return myEnum != null;
+		case TestPackage.SIMPLE_TEST_OBJECT__INNER:
+			return inner != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestFactoryImpl.java
index 5ef231b..f670a91 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestFactoryImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestFactory;
@@ -77,6 +78,8 @@
 		switch (eClass.getClassifierID()) {
 		case TestPackage.SIMPLE_TEST_OBJECT:
 			return createSimpleTestObject();
+		case TestPackage.INNER_OBJECT:
+			return createInnerObject();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
@@ -136,6 +139,18 @@
 	 *
 	 * @generated
 	 */
+	@Override
+	public InnerObject createInnerObject() {
+		final InnerObjectImpl innerObject = new InnerObjectImpl();
+		return innerObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	public TestEnum createTestEnumFromString(EDataType eDataType, String initialValue) {
 		final TestEnum result = TestEnum.get(initialValue);
 		if (result == null) {
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestPackageImpl.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestPackageImpl.java
index db9da91..7bd5258 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/impl/TestPackageImpl.java
@@ -21,7 +21,9 @@
 import org.eclipse.emf.ecore.EDataType;
 import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestFactory;
@@ -49,6 +51,14 @@
 	 *
 	 * @generated
 	 */
+	private EClass innerObjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	private EEnum testEnumEEnum = null;
 
 	/**
@@ -177,6 +187,39 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getSimpleTestObject_Inner() {
+		return (EReference) simpleTestObjectEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getInnerObject() {
+		return innerObjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getInnerObject_MyEnum() {
+		return (EAttribute) innerObjectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EEnum getTestEnum() {
 		return testEnumEEnum;
 	}
@@ -230,6 +273,10 @@
 		createEAttribute(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__DATE);
 		createEAttribute(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__XML_DATE);
 		createEAttribute(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__MY_ENUM);
+		createEReference(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__INNER);
+
+		innerObjectEClass = createEClass(INNER_OBJECT);
+		createEAttribute(innerObjectEClass, INNER_OBJECT__MY_ENUM);
 
 		// Create enums
 		testEnumEEnum = createEEnum(TEST_ENUM);
@@ -280,6 +327,14 @@
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getSimpleTestObject_MyEnum(), getTestEnum(), "myEnum", null, 0, 1, SimpleTestObject.class, //$NON-NLS-1$
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSimpleTestObject_Inner(), getInnerObject(), null, "inner", null, 0, 1, //$NON-NLS-1$
+			SimpleTestObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+			!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(innerObjectEClass, InnerObject.class, "InnerObject", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
+			IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getInnerObject_MyEnum(), getTestEnum(), "myEnum", null, 0, 1, InnerObject.class, //$NON-NLS-1$
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		// Initialize enums and add enum literals
 		initEEnum(testEnumEEnum, TestEnum.class, "TestEnum"); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/InnerObjectItemProvider.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/InnerObjectItemProvider.java
new file mode 100644
index 0000000..22539f7
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/InnerObjectItemProvider.java
@@ -0,0 +1,187 @@
+/**
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
+ */
+package org.eclipse.emf.ecp.view.core.swt.test.model.provider;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
+import org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum;
+import org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class InnerObjectItemProvider
+	extends ItemProviderAdapter
+	implements
+	IEditingDomainItemProvider,
+	IStructuredItemContentProvider,
+	ITreeItemContentProvider,
+	IItemLabelProvider,
+	IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public InnerObjectItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addMyEnumPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the My Enum feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated NOT
+	 */
+	protected void addMyEnumPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_InnerObject_myEnum_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_InnerObject_myEnum_feature", //$NON-NLS-1$//$NON-NLS-2$
+					"_UI_InnerObject_type"), //$NON-NLS-1$
+				TestPackage.Literals.INNER_OBJECT__MY_ENUM,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				null,
+				null) {
+				@Override
+				public Collection<?> getChoiceOfValues(Object object) {
+					final Set<Enumerator> set = TestPackage.Literals.TEST_ENUM.getELiterals().stream()
+						.map(EEnumLiteral::getInstance).collect(Collectors.toSet());
+					set.remove(TestEnum.D);
+					return set;
+				}
+			});
+	}
+
+	/**
+	 * This returns InnerObject.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/InnerObject")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		final TestEnum labelValue = ((InnerObject) object).getMyEnum();
+		final String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ? getString("_UI_InnerObject_type") : //$NON-NLS-1$
+			getString("_UI_InnerObject_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(InnerObject.class)) {
+		case TestPackage.INNER_OBJECT__MY_ENUM:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return TestEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/SimpleTestObjectItemProvider.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/SimpleTestObjectItemProvider.java
index 6d95b97..adf2451 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/SimpleTestObjectItemProvider.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/SimpleTestObjectItemProvider.java
@@ -25,14 +25,17 @@
 import org.eclipse.emf.common.util.Enumerator;
 import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum;
+import org.eclipse.emf.ecp.view.core.swt.test.model.TestFactory;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
@@ -48,9 +51,7 @@
 public class SimpleTestObjectItemProvider
 	extends ItemProviderAdapter
 	implements
-	IEditingDomainItemProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
+	IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider,
 	IItemPropertySource {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -161,6 +162,38 @@
 	}
 
 	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(TestPackage.Literals.SIMPLE_TEST_OBJECT__INNER);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
 	 * This returns SimpleTestObject.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -205,6 +238,9 @@
 		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 			return;
+		case TestPackage.SIMPLE_TEST_OBJECT__INNER:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
 		}
 		super.notifyChanged(notification);
 	}
@@ -220,6 +256,9 @@
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add(createChildParameter(TestPackage.Literals.SIMPLE_TEST_OBJECT__INNER,
+			TestFactory.eINSTANCE.createInnerObject()));
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/TestItemProviderAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/TestItemProviderAdapterFactory.java
index a758963..c74dcc3 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/TestItemProviderAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/provider/TestItemProviderAdapterFactory.java
@@ -115,6 +115,32 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject}
+	 * instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected InnerObjectItemProvider innerObjectItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createInnerObjectAdapter() {
+		if (innerObjectItemProvider == null) {
+			innerObjectItemProvider = new InnerObjectItemProvider(this);
+		}
+
+		return innerObjectItemProvider;
+	}
+
+	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -231,6 +257,9 @@
 		if (simpleTestObjectItemProvider != null) {
 			simpleTestObjectItemProvider.dispose();
 		}
+		if (innerObjectItemProvider != null) {
+			innerObjectItemProvider.dispose();
+		}
 	}
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestAdapterFactory.java
index 7b6348c..c4bf294 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestAdapterFactory.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage;
 
@@ -88,6 +89,11 @@
 		}
 
 		@Override
+		public Adapter caseInnerObject(InnerObject object) {
+			return createInnerObjectAdapter();
+		}
+
+		@Override
 		public Adapter defaultCase(EObject object) {
 			return createEObjectAdapter();
 		}
@@ -124,6 +130,22 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject
+	 * <em>Inner 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.core.swt.test.model.InnerObject
+	 * @generated
+	 */
+	public Adapter createInnerObjectAdapter() {
+		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.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestSwitch.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestSwitch.java
index 8ec9a17..08d2b07 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/util/TestSwitch.java
@@ -17,6 +17,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.ecp.view.core.swt.test.model.InnerObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 import org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage;
 
@@ -91,6 +92,14 @@
 			}
 			return result;
 		}
+		case TestPackage.INNER_OBJECT: {
+			final InnerObject innerObject = (InnerObject) theEObject;
+			T result = caseInnerObject(innerObject);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -113,6 +122,22 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Inner 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>Inner Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseInnerObject(InnerObject 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.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllPluginTests.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllPluginTests.java
index 36da737..b68a06c 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllPluginTests.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllPluginTests.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.LinkControlSWTRenderer_Containment_PTest;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.LinkControlSWTRenderer_CrossReference_PTest;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.NumberControlRenderer_PTest;
+import org.eclipse.emf.ecp.view.internal.core.swt.renderer.SimpleControlSWTRenderer_PTest;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewRenderer_PTest;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.XMLDateControlRenderer_PTest;
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer_PTest;
@@ -38,7 +39,7 @@
 	TextControlRendererUnsettable_PTest.class, NumberControlRenderer_PTest.class, XMLDateControlRenderer_PTest.class,
 	TextControlRenderer_PTest.class, DateTimeControlRenderer_PTest.class, AbstractControlSWTRenderer_PTest.class,
 	LinkControlSWTRenderer_CrossReference_PTest.class, LinkControlSWTRenderer_Containment_PTest.class,
-	EnumComboViewerRenderer_PTest.class })
+	EnumComboViewerRenderer_PTest.class, SimpleControlSWTRenderer_PTest.class })
 public class AllPluginTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllTests.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllTests.java
index 94381f0..29e4ebc 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllTests.java
@@ -15,7 +15,6 @@
 
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.BooleanControlRenderer_PTest;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.DateTimeControlRenderer_PTest;
-import org.eclipse.emf.ecp.view.internal.core.swt.renderer.SimpleControlSWTRenderer_PTest;
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer_PTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
@@ -30,7 +29,6 @@
 @RunWith(Suite.class)
 @SuiteClasses({ BooleanControlRenderer_PTest.class,
 	TimeBoundStringBuffer_Test.class,
-	SimpleControlSWTRenderer_PTest.class,
 	AbstractControlSWTRenderer_PTest.class,
 	DateTimeControlRenderer_PTest.class
 })
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/DynamicDMR_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/DynamicDMR_PTest.java
index e396162..124b86e 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/DynamicDMR_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/DynamicDMR_PTest.java
@@ -46,9 +46,9 @@
 @RunWith(DatabindingClassRunner.class)
 public class DynamicDMR_PTest {
 
-	private static final String EMPTY = "";
-	private static final String NAME_INIT = "name";
-	private static final String NAME_OTHER = "other";
+	private static final String EMPTY = ""; //$NON-NLS-1$
+	private static final String NAME_INIT = "name"; //$NON-NLS-1$
+	private static final String NAME_OTHER = "other"; //$NON-NLS-1$
 
 	private Shell shell;
 	private VView view;
@@ -142,10 +142,10 @@
 		waitForUIThread();
 		assertText(NAME_INIT, true);
 
-		changeDomain(merchandise(NAME_INIT + "2"), null);
+		changeDomain(merchandise(NAME_INIT + "2"), null); //$NON-NLS-1$
 		// assert
 		waitForUIThread();
-		assertText(NAME_INIT + "2", true);
+		assertText(NAME_INIT + "2", true); //$NON-NLS-1$
 	}
 
 	@Test
@@ -215,11 +215,11 @@
 		try {
 			control = SWTViewTestHelper.render(view, domain, shell);
 		} catch (final NoRendererFoundException e) {
-			fail("Could not render view: " + e.getMessage());
+			fail("Could not render view: " + e.getMessage()); //$NON-NLS-1$
 		} catch (final NoPropertyDescriptorFoundExeption e) {
-			fail("Could not render view: " + e.getMessage());
+			fail("Could not render view: " + e.getMessage()); //$NON-NLS-1$
 		} catch (final EMFFormsNoRendererException e) {
-			fail("Could not render view: " + e.getMessage());
+			fail("Could not render view: " + e.getMessage()); //$NON-NLS-1$
 		}
 	}
 
@@ -234,7 +234,7 @@
 		final long maxTime = System.currentTimeMillis() + 5000;
 		while (Display.getDefault().readAndDispatch()) {
 			if (System.currentTimeMillis() > maxTime) {
-				fail("Timeout");
+				fail("Timeout"); //$NON-NLS-1$
 			}
 		}
 	}
@@ -278,8 +278,8 @@
 
 	private void assertText(String message, boolean enabled) {
 		final Text text = getText();
-		assertEquals("Enablement of text control: ", enabled, text.isEnabled() && text.getEditable());
-		assertEquals("Text of text control: ", message, text.getText());
+		assertEquals("Enablement of text control: ", enabled, text.isEnabled() && text.getEditable()); //$NON-NLS-1$
+		assertEquals("Text of text control: ", message, text.getText()); //$NON-NLS-1$
 	}
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/TimeBoundStringBuffer_Test.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/TimeBoundStringBuffer_Test.java
index bd995a2..c2d1cf5 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/TimeBoundStringBuffer_Test.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/TimeBoundStringBuffer_Test.java
@@ -41,7 +41,7 @@
 		buffer.addLast('a');
 		buffer.addLast('b');
 		buffer.addLast('c');
-		assertEquals("abc", buffer.asString());
+		assertEquals("abc", buffer.asString()); //$NON-NLS-1$
 	}
 
 	@Test
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 2476b60..dfedef2 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
@@ -106,8 +106,8 @@
 		assertTrue(Button.class.isInstance(render));
 		assertEquals(SWT.CHECK, Button.class.cast(render).getStyle()
 			& SWT.CHECK);
-		assertEquals("org_eclipse_emf_ecp_control_boolean", Button.class.cast(render).getData(CUSTOM_VARIANT));
-		assertEquals(UUID + "#control", Button.class.cast(render).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
+		assertEquals("org_eclipse_emf_ecp_control_boolean", Button.class.cast(render).getData(CUSTOM_VARIANT)); //$NON-NLS-1$
+		assertEquals(UUID + "#control", Button.class.cast(render).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY)); //$NON-NLS-1$
 	}
 
 	@Override
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 e0bdb14..8a94b59 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
@@ -63,6 +63,7 @@
 import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -79,12 +80,12 @@
 public class DateTimeControlRenderer_PTest extends AbstractControl_PTest<VControl> {
 
 	private DefaultRealm realm;
-	private static final String NOTIME = "No time set! Click to set time.";
-	private static final String NODATE = "No date set! Click to set date.";
-	private static final String CLEANDATE = "Clean Date";
-	private static final String SELECTDATE = "Select Date";
-	private static final String CLEANTIME = "Clean Time";
-	private static final String SELECTTIME = "Select Time";
+	private static final String NOTIME = "No time set! Click to set time."; //$NON-NLS-1$
+	private static final String NODATE = "No date set! Click to set date."; //$NON-NLS-1$
+	private static final String CLEANDATE = "Clean Date"; //$NON-NLS-1$
+	private static final String SELECTDATE = "Select Date"; //$NON-NLS-1$
+	private static final String CLEANTIME = "Clean Time"; //$NON-NLS-1$
+	private static final String SELECTTIME = "Select Time"; //$NON-NLS-1$
 
 	@Before
 	public void before() throws DatabindingFailedException {
@@ -187,13 +188,13 @@
 		assertEquals(timeWidgetVisible, dateTime.getChildren()[1].isVisible());
 		assertTrue(Button.class.isInstance(dateTime.getChildren()[2]));
 
-		assertEquals(UUID + "#unset",
+		assertEquals(UUID + "#unset", //$NON-NLS-1$
 			SWTTestUtil.findControl(render, 0, Button.class).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals(UUID + "#set",
+		assertEquals(UUID + "#set", //$NON-NLS-1$
 			SWTTestUtil.findControl(render, 1, Button.class).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals(UUID + "#date",
+		assertEquals(UUID + "#date", //$NON-NLS-1$
 			SWTTestUtil.findControl(render, 0, DateTime.class).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals(UUID + "#time",
+		assertEquals(UUID + "#time", //$NON-NLS-1$
 			SWTTestUtil.findControl(render, 1, DateTime.class).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
 	}
 
@@ -247,7 +248,7 @@
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final Date initialValue = new Date();
 		final Date changedValue = new Date(System.currentTimeMillis() * 2);
-		final Set<IValueChangeListener> listeners = new LinkedHashSet<IValueChangeListener>();
+		final Set<IValueChangeListener> listeners = new LinkedHashSet<>();
 		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
 		final EObject mockedEObject = mock(EObject.class);
 		when(mockedEObject.eIsSet(mockedEStructuralFeature)).thenReturn(true);
@@ -487,7 +488,7 @@
 	}
 
 	@Test
-	public void testEffectivelyReadOnlyDeactivatesControl()
+	public void testEffectivelyReadOnly()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
 		final EObject mockedEObject = mock(EObject.class);
@@ -504,8 +505,12 @@
 		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		getRenderer().finalizeRendering(getShell());
 		assertFalse(renderControl.getEnabled());
-		final Button unset = SWTTestUtil.findControlById(renderControl, UUID + "#unset", Button.class);
+		final Button unset = SWTTestUtil.findControlById(renderControl, UUID + "#unset", Button.class); //$NON-NLS-1$
 		assertFalse(unset.getVisible());
+		assertTrue(GridData.class.cast(unset.getLayoutData()).exclude);
+		final Button setButton = getSetButton(renderControl);
+		assertFalse(setButton.getVisible());
+		assertTrue(GridData.class.cast(setButton.getLayoutData()).exclude);
 	}
 
 	@Test
@@ -527,7 +532,7 @@
 		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		getRenderer().finalizeRendering(getShell());
 		assertFalse(renderControl.getEnabled());
-		final Button unset = SWTTestUtil.findControlById(renderControl, UUID + "#unset", Button.class);
+		final Button unset = SWTTestUtil.findControlById(renderControl, UUID + "#unset", Button.class); //$NON-NLS-1$
 		assertTrue(unset.getVisible());
 		assertFalse(unset.getEnabled());
 	}
@@ -551,14 +556,14 @@
 		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		getRenderer().finalizeRendering(getShell());
 		assertTrue(renderControl.getEnabled());
-		final Button unset = SWTTestUtil.findControlById(renderControl, UUID + "#unset", Button.class);
+		final Button unset = SWTTestUtil.findControlById(renderControl, UUID + "#unset", Button.class); //$NON-NLS-1$
 		assertTrue(unset.getVisible());
 		assertTrue(unset.getEnabled());
 
 	}
 
 	private void setMockDateTimeDisplayAttachment(DateTimeDisplayType displayType) {
-		final EList<VAttachment> attachments = new BasicEList<VAttachment>();
+		final EList<VAttachment> attachments = new BasicEList<>();
 		final VDateTimeDisplayAttachment displayAttachment = VViewFactory.eINSTANCE.createDateTimeDisplayAttachment();
 		displayAttachment.setDisplayType(displayType);
 		attachments.add(displayAttachment);
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 cd0a6d0..52c7504 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
@@ -17,6 +17,7 @@
 import static org.hamcrest.CoreMatchers.anything;
 import static org.hamcrest.CoreMatchers.hasItem;
 import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
@@ -54,6 +55,10 @@
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.Player;
 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;
@@ -97,12 +102,14 @@
 		editSupport = mock(EMFFormsEditSupport.class);
 
 		domainObject = TestFactory.eINSTANCE.createSimpleTestObject();
+		domainObject.setInner(TestFactory.eINSTANCE.createInnerObject());
 
 		setup();
 
 		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(domainObject);
 		observableValue = EMFEditProperties
-			.value(editingDomain, TestPackage.Literals.SIMPLE_TEST_OBJECT__MY_ENUM).observe(domainObject);
+			.value(editingDomain, TestPackage.Literals.INNER_OBJECT__MY_ENUM)
+			.observe(domainObject.getInner());
 
 		setRenderer(new EnumComboViewerSWTRenderer(getvControl(), getContext(), reportService, getDatabindingService(),
 			getLabelProvider(),
@@ -118,7 +125,7 @@
 
 	@Override
 	protected void mockControl() throws DatabindingFailedException {
-		super.mockControl(domainObject, TestPackage.eINSTANCE.getSimpleTestObject_MyEnum());
+		super.mockControl(domainObject, TestPackage.eINSTANCE.getInnerObject_MyEnum());
 	}
 
 	@Test
@@ -166,7 +173,7 @@
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final TestEnum changedValue = TestEnum.C;
 
-		domainObject.setMyEnum(TestEnum.B);
+		domainObject.getInner().setMyEnum(TestEnum.B);
 		final Combo combo = setUpDatabindingTest(observableValue);
 		combo.select(1); // TestEnum.C
 		combo.notifyListeners(SWT.Selection, new Event());
@@ -269,7 +276,7 @@
 
 				// A is filtered by annotation and D is filtered by the property descriptor,
 				// so we can only use B and C for testing
-				domainObject.setMyEnum(TestEnum.B);
+				domainObject.getInner().setMyEnum(TestEnum.B);
 				renderControl(new SWTGridCell(0, 2, getRenderer()));
 
 				final EnumComboViewerSWTRenderer enumRenderer = (EnumComboViewerSWTRenderer) getRenderer();
@@ -284,7 +291,7 @@
 				final List<Throwable> thrown = new ArrayList<>(valuesToSet.length);
 				for (final TestEnum valueToSet : valuesToSet) {
 					final CompletableFuture<?> asyncUpdate = CompletableFuture.runAsync(
-						() -> domainObject.setMyEnum(valueToSet))
+						() -> domainObject.getInner().setMyEnum(valueToSet))
 						.exceptionally(x -> {
 							thrown.add(x);
 							return null;
@@ -309,4 +316,29 @@
 		throw (X) x;
 	}
 
+	@Test
+	public void testRootDomainModelChanged()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		// assert we have the old values
+		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
+			.thenReturn(observableValue);
+		renderControl(new SWTGridCell(0, 2, getRenderer()));
+		final EnumComboViewerSWTRenderer enumRenderer = (EnumComboViewerSWTRenderer) getRenderer();
+		assertArrayEquals(new Object[] { TestEnum.B, TestEnum.C },
+			enumRenderer.getAvailableChoicesValue().getValue().toArray());
+
+		// prepare a new domain model
+		final Player player = BowlingFactory.eINSTANCE.createPlayer();
+		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(player);
+		final IObservableValue playerGenderObservable = EMFEditProperties
+			.value(editingDomain, BowlingPackage.Literals.PLAYER__GENDER)
+			.observe(player);
+		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
+			.thenReturn(playerGenderObservable);
+		// this triggers the reevaluation of the modelObservable
+		enumRenderer.notifyChange();
+		// we should now have new values
+		assertArrayEquals(Gender.VALUES.toArray(), enumRenderer.getAvailableChoicesValue().getValue().toArray());
+	}
+
 }
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 3ae3e57..1fb7d70 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
@@ -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 2.0
@@ -14,6 +14,8 @@
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
+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.Matchers.eq;
@@ -44,12 +46,12 @@
 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;
-import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Control;
 import org.junit.After;
@@ -68,7 +70,6 @@
 	private DefaultRealm realm;
 	private EMFFormsLocalizationService localizationService;
 	private ImageRegistryService imageRegistryService;
-	private EMFFormsEditSupport editSupport;
 	private ReportService reportService;
 	private EReference eReference;
 	private EObject eObject;
@@ -79,22 +80,21 @@
 		realm = new DefaultRealm();
 		reportService = mock(ReportService.class);
 		localizationService = mock(EMFFormsLocalizationService.class);
-		when(localizationService.getString(any(Class.class), any(String.class))).thenReturn("TEST");
+		when(localizationService.getString(any(Class.class), any(String.class))).thenReturn("TEST"); //$NON-NLS-1$
 		when(localizationService.getString(any(Class.class), eq(MessageKeys.LinkControl_AddReference)))
-			.thenReturn("Link ");
+			.thenReturn("Link "); //$NON-NLS-1$
 		when(localizationService.getString(any(Class.class), eq(MessageKeys.LinkControl_NewReference)))
-			.thenReturn("Create and link new ");
+			.thenReturn("Create and link new "); //$NON-NLS-1$
 		when(localizationService.getString(any(Class.class), eq(MessageKeys.LinkControl_DeleteReference)))
-			.thenReturn("Delete");
+			.thenReturn("Delete"); //$NON-NLS-1$
 		imageRegistryService = mock(ImageRegistryService.class);
-		editSupport = mock(EMFFormsEditSupport.class);
 		setDatabindingService(mock(EMFFormsDatabinding.class));
 		setLabelProvider(mock(EMFFormsLabelProvider.class));
 		templateProvider = mock(VTViewTemplateProvider.class);
 		setTemplateProvider(templateProvider);
 		setup();
 		setRenderer(new LinkControlSWTRenderer(getvControl(), getContext(), reportService, getDatabindingService(),
-			getLabelProvider(), getTemplateProvider(), localizationService, imageRegistryService, editSupport));
+			getLabelProvider(), getTemplateProvider(), localizationService, imageRegistryService));
 		getRenderer().init();
 
 		final TestObservableValue observableValue = mock(TestObservableValue.class);
@@ -105,7 +105,7 @@
 			.thenReturn(observableValue);
 
 		final TestObservableValue labelObservable = mock(TestObservableValue.class);
-		when(labelObservable.getValue()).thenReturn("Merchandise");
+		when(labelObservable.getValue()).thenReturn("Merchandise"); //$NON-NLS-1$
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(labelObservable);
 	}
@@ -130,11 +130,11 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Merchandise", linkButton.getToolTipText());
+		assertEquals("Link Merchandise", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
 	}
 
 	/**
@@ -154,11 +154,11 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Merchandise", linkButton.getToolTipText());
+		assertEquals("Link Merchandise", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
 	}
 
 	/** For containment references, the 'link' button must be shown by default (:= reference style == true). */
@@ -169,11 +169,29 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Merchandise", linkButton.getToolTipText());
+		assertEquals("Link Merchandise", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
+	}
+
+	@Test
+	public void linkExistingButton_noReferenceStyle_readOnly()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		when(getvControl().isEffectivelyReadonly()).thenReturn(true);
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertFalse("Button visibility for readonly VControl.", linkButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(linkButton.getLayoutData()).exclude); //$NON-NLS-1$
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertFalse("Button visibility for readonly VControl.", createAndLinkButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(createAndLinkButton.getLayoutData()).exclude); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
+		assertFalse("Button visibility for readonly VControl.", deleteButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(deleteButton.getLayoutData()).exclude); //$NON-NLS-1$
 	}
 
 	/**
@@ -193,9 +211,46 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
+		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.
+		}
+	}
+
+	/**
+	 * Test that buttons are still created but invisible when the VControl is set to readonly.
+	 * This also implicitly tests that no null pointer exception is thrown if not all buttons are rendered.
+	 */
+	@Test
+	public void linkButton_referenceStyleFalse_readOnly()
+		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));
+		when(getvControl().isEffectivelyReadonly()).thenReturn(true);
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		// Readonly => Buttons should be present but invisible
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
+		assertFalse("Button visibility for readonly VControl.", createAndLinkButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(createAndLinkButton.getLayoutData()).exclude); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
+		assertFalse("Button visibility for readonly VControl.", deleteButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(deleteButton.getLayoutData()).exclude); //$NON-NLS-1$
 		try {
 			SWTTestUtil.findControl(renderControl, 2, Button.class);
 			fail(
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 3edd09f..5f38182 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
@@ -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 2.0
@@ -14,6 +14,8 @@
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
+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.Matchers.eq;
@@ -44,12 +46,12 @@
 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;
-import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Control;
 import org.junit.After;
@@ -75,22 +77,21 @@
 		realm = new DefaultRealm();
 		final ReportService reportService = mock(ReportService.class);
 		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
-		when(localizationService.getString(any(Class.class), any(String.class))).thenReturn("TEST");
+		when(localizationService.getString(any(Class.class), any(String.class))).thenReturn("TEST"); //$NON-NLS-1$
 		when(localizationService.getString(any(Class.class), eq(MessageKeys.LinkControl_AddReference)))
-			.thenReturn("Link ");
+			.thenReturn("Link "); //$NON-NLS-1$
 		when(localizationService.getString(any(Class.class), eq(MessageKeys.LinkControl_NewReference)))
-			.thenReturn("Create and link new ");
+			.thenReturn("Create and link new "); //$NON-NLS-1$
 		when(localizationService.getString(any(Class.class), eq(MessageKeys.LinkControl_DeleteReference)))
-			.thenReturn("Delete");
+			.thenReturn("Delete"); //$NON-NLS-1$
 		final ImageRegistryService imageRegistryService = mock(ImageRegistryService.class);
-		final EMFFormsEditSupport editSupport = mock(EMFFormsEditSupport.class);
 		setDatabindingService(mock(EMFFormsDatabinding.class));
 		setLabelProvider(mock(EMFFormsLabelProvider.class));
 		templateProvider = mock(VTViewTemplateProvider.class);
 		setTemplateProvider(templateProvider);
 		setup();
 		setRenderer(new LinkControlSWTRenderer(getvControl(), getContext(), reportService, getDatabindingService(),
-			getLabelProvider(), getTemplateProvider(), localizationService, imageRegistryService, editSupport));
+			getLabelProvider(), getTemplateProvider(), localizationService, imageRegistryService));
 		getRenderer().init();
 
 		final TestObservableValue observableValue = mock(TestObservableValue.class);
@@ -101,7 +102,7 @@
 			.thenReturn(observableValue);
 
 		final TestObservableValue labelObservable = mock(TestObservableValue.class);
-		when(labelObservable.getValue()).thenReturn("Player");
+		when(labelObservable.getValue()).thenReturn("Player"); //$NON-NLS-1$
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(labelObservable);
 
@@ -113,11 +114,6 @@
 		dispose();
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.swt.common.test.AbstractControl_PTest#mockControl()
-	 */
 	@Override
 	protected void mockControl() throws DatabindingFailedException {
 		eObject = BowlingFactory.eINSTANCE.createFan();
@@ -136,11 +132,11 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Player", linkButton.getToolTipText());
+		assertEquals("Link Player", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
 	}
 
 	@Test
@@ -156,11 +152,11 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Player", linkButton.getToolTipText());
+		assertEquals("Link Player", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
 	}
 
 	@Test
@@ -175,10 +171,48 @@
 		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		getRenderer().finalizeRendering(getShell());
 
+		// Readonly => Buttons should be present but invisible
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Player", linkButton.getToolTipText());
+		assertEquals("Link Player", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
+		try {
+			SWTTestUtil.findControl(renderControl, 2, Button.class);
+			fail(
+				"There must not be a third button for a non-containment reference with disabled 'create and 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 link or the delete
+			// button are not found.
+		}
+	}
+
+	/**
+	 * Test that buttons are still created but invisible when the VControl is set to readonly.
+	 * This also implicitly tests that no null pointer exception is thrown if not all buttons are rendered.
+	 */
+	@Test
+	public void createAndLinkButton_referenceStylePropertyFalse_readOnly()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowCreateAndLinkButtonForCrossReferences(false);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+		when(getvControl().isEffectivelyReadonly()).thenReturn(true);
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		// Readonly => Buttons should be present but invisible
+		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertEquals("Link Player", linkButton.getToolTipText()); //$NON-NLS-1$
+		assertFalse("Button visibility for readonly VControl.", linkButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(linkButton.getLayoutData()).exclude); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
+		assertFalse("Button visibility for readonly VControl.", deleteButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(deleteButton.getLayoutData()).exclude); //$NON-NLS-1$
 		try {
 			SWTTestUtil.findControl(renderControl, 2, Button.class);
 			fail(
@@ -198,11 +232,11 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Player", linkButton.getToolTipText());
+		assertEquals("Link Player", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
 	}
 
 	/**
@@ -222,10 +256,33 @@
 		getRenderer().finalizeRendering(getShell());
 
 		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
-		assertEquals("Link Player", linkButton.getToolTipText());
+		assertEquals("Link Player", linkButton.getToolTipText()); //$NON-NLS-1$
 		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
-		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText());
+		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText()); //$NON-NLS-1$
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
-		assertEquals("Delete", deleteButton.getToolTipText());
+		assertEquals("Delete", deleteButton.getToolTipText()); //$NON-NLS-1$
+	}
+
+	@Test
+	public void linkButton_referenceStyleFalse_readonly()
+		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));
+		when(getvControl().isEffectivelyReadonly()).thenReturn(true);
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertFalse("Button visibility for readonly VControl.", linkButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(linkButton.getLayoutData()).exclude); //$NON-NLS-1$
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertFalse("Button visibility for readonly VControl.", createAndLinkButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(createAndLinkButton.getLayoutData()).exclude); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
+		assertFalse("Button visibility for readonly VControl.", deleteButton.isVisible()); //$NON-NLS-1$
+		assertTrue("Button excluded from layout", GridData.class.cast(deleteButton.getLayoutData()).exclude); //$NON-NLS-1$
 	}
 }
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 2090ab9..f17b9ec 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
@@ -77,10 +77,10 @@
 		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
 		when(
 			localizationService.getString(NumberControlSWTRenderer.class, MessageKeys.NumericalControl_FormatNumerical))
-				.thenReturn("#");
+				.thenReturn("#"); //$NON-NLS-1$
 		when(
 			localizationService.getString(NumberControlSWTRenderer.class,
-				MessageKeys.NumericalControl_FormatNumericalDecimal)).thenReturn("#.#");
+				MessageKeys.NumericalControl_FormatNumericalDecimal)).thenReturn("#.#"); //$NON-NLS-1$
 		final EMFFormsLocaleProvider localeProvider = mock(EMFFormsLocaleProvider.class);
 		when(localeProvider.getLocale()).thenReturn(Locale.getDefault());
 		final EMFFormsEditSupport editSupport = mock(EMFFormsEditSupport.class);
@@ -171,9 +171,9 @@
 		assertEquals(SWT.RIGHT, Text.class.cast(textRender).getStyle()
 			& SWT.RIGHT);
 
-		assertEquals("org_eclipse_emf_ecp_control_numerical", Text.class.cast(textRender).getData(CUSTOM_VARIANT));
-		assertEquals(UUID + "#control", Text.class.cast(textRender).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals(UUID + "#control", Composite.class.cast(render).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
+		assertEquals("org_eclipse_emf_ecp_control_numerical", Text.class.cast(textRender).getData(CUSTOM_VARIANT)); //$NON-NLS-1$
+		assertEquals(UUID + "#control", Text.class.cast(textRender).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY)); //$NON-NLS-1$
+		assertEquals(UUID + "#control", Composite.class.cast(render).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY)); //$NON-NLS-1$
 	}
 
 	@Override
@@ -238,7 +238,7 @@
 		final double changedValue = 42.5;
 		final EAttribute eAttribute = EcoreFactory.eINSTANCE.createEAttribute();
 		eAttribute.setEType(EcorePackage.eINSTANCE.getEDouble());
-		eAttribute.setName("doubleAttr");
+		eAttribute.setName("doubleAttr"); //$NON-NLS-1$
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
 			eAttribute);
 
@@ -258,7 +258,7 @@
 		when(getContext().getService(PreSetValidationService.class)).thenReturn(null);
 
 		final int initialValue = 0;
-		final String tooBig = "11111111111111111111111111111111";
+		final String tooBig = "11111111111111111111111111111111"; //$NON-NLS-1$
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
 			EcorePackage.eINSTANCE.getETypedElement_LowerBound());
 
@@ -278,7 +278,7 @@
 		when(getContext().getService(PreSetValidationService.class)).thenReturn(null);
 
 		final int initialValue = 0;
-		final String tooSmall = "-11111111111111111111111111111111";
+		final String tooSmall = "-11111111111111111111111111111111"; //$NON-NLS-1$
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
 			EcorePackage.eINSTANCE.getETypedElement_LowerBound());
 
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/SimpleControlSWTRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/SimpleControlSWTRenderer_PTest.java
index a38f037..f838695 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/SimpleControlSWTRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/SimpleControlSWTRenderer_PTest.java
@@ -14,12 +14,17 @@
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 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 static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.util.Collections;
 import java.util.Set;
 
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
@@ -28,10 +33,14 @@
 import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer;
 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;
 import org.eclipse.emf.ecp.view.template.model.VTStyleProperty;
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.ecp.view.template.style.labelwidth.model.VTLabelWidthStyleProperty;
 import org.eclipse.emf.ecp.view.template.style.labelwidth.model.VTLabelwidthFactory;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
 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;
@@ -39,6 +48,8 @@
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
@@ -134,7 +145,30 @@
 		assertNull(labelCell.getPreferredSize());
 	}
 
+	@Test
+	public void unsettable_readOnly()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		TestSimpleControlSWTRenderer.class.cast(getRenderer()).setUnsettable(true);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
+			.thenReturn(
+				mockedObservableValue);
+
+		Mockito.when(getvControl().isEffectivelyReadonly()).thenReturn(true);
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button unset = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertFalse(unset.isVisible());
+		assertTrue(GridData.class.cast(unset.getLayoutData()).exclude);
+	}
+
 	private class TestSimpleControlSWTRenderer extends SimpleControlSWTRenderer {
+		private Boolean unsettable;
 
 		TestSimpleControlSWTRenderer(
 			VControl vElement,
@@ -154,7 +188,7 @@
 
 		@Override
 		protected String getUnsetText() {
-			return "I am unset text";
+			return "I am unset text"; //$NON-NLS-1$
 		}
 
 		@Override
@@ -162,6 +196,17 @@
 			return new Label(parent, SWT.NONE);
 		}
 
+		@Override
+		protected boolean isUnsettable() throws DatabindingFailedException {
+			if (unsettable == null) {
+				return super.isUnsettable();
+			}
+			return unsettable;
+		}
+
+		void setUnsettable(boolean unsettable) {
+			this.unsettable = unsettable;
+		}
 	}
 
 }
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 b5894a8..0ed04cd 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
@@ -104,7 +104,7 @@
 	@Test
 	public void testMultipleSimpleCompositeView() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
-		final BasicEList<VContainedElement> basicEList = new BasicEList<VContainedElement>();
+		final BasicEList<VContainedElement> basicEList = new BasicEList<>();
 		final VContainedElement control1 = mock(VContainedElement.class);
 		final VContainedElement control2 = mock(VContainedElement.class);
 		basicEList.add(control1);
@@ -132,7 +132,7 @@
 	@Test
 	public void testMultipleComplexGridDescriptionView() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
-		final BasicEList<VContainedElement> basicEList = new BasicEList<VContainedElement>();
+		final BasicEList<VContainedElement> basicEList = new BasicEList<>();
 		final VContainedElement control1 = mock(VContainedElement.class);
 		final VContainedElement control2 = mock(VContainedElement.class);
 		final VContainedElement control3 = mock(VContainedElement.class);
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 1c48686..93abcfc 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
@@ -158,7 +158,7 @@
 		assertTrue(Button.class.isInstance(top.getChildren()[1]));
 		final Text text = Text.class.cast(textRender);
 		assertEquals(SWT.LEFT, text.getStyle() & SWT.LEFT);
-		assertEquals("org_eclipse_emf_ecp_control_xmldate", text.getData(CUSTOM_VARIANT));
+		assertEquals("org_eclipse_emf_ecp_control_xmldate", text.getData(CUSTOM_VARIANT)); //$NON-NLS-1$
 	}
 
 	@Override
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer_PTest.java
index 8119b8f..8a1444b 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer_PTest.java
@@ -118,11 +118,11 @@
 		Mockito.when(emfFormsLabelProvider.getDisplayName(
 			any(VDomainModelReference.class),
 			any(EObject.class)))
-			.thenReturn(Observables.constantObservableValue("I am display name", String.class));
+			.thenReturn(Observables.constantObservableValue("I am display name", String.class)); //$NON-NLS-1$
 		Mockito.when(emfFormsLabelProvider.getDescription(
 			any(VDomainModelReference.class),
 			any(EObject.class)))
-			.thenReturn(Observables.constantObservableValue("I am description", String.class));
+			.thenReturn(Observables.constantObservableValue("I am description", String.class)); //$NON-NLS-1$
 
 		viewTemplateProvider = Mockito.mock(VTViewTemplateProvider.class);
 
@@ -218,7 +218,7 @@
 		final VTLabelWrapStyleProperty labelWrapStyleProperty = VTWrapFactory.eINSTANCE.createLabelWrapStyleProperty();
 		labelWrapStyleProperty.setWrapLabel(true);
 
-		final Set<VTStyleProperty> properties = new LinkedHashSet<VTStyleProperty>();
+		final Set<VTStyleProperty> properties = new LinkedHashSet<>();
 		properties.add(alignProperty);
 		properties.add(labelWrapStyleProperty);
 		Mockito.when(viewTemplateProvider.getStyleProperties(vControl, viewModelContext)).thenReturn(properties);
@@ -366,7 +366,7 @@
 	 * @return
 	 */
 	private List<Image> createIconList(int index, List<Integer> severityList) {
-		final List<Image> imageList = new ArrayList<Image>();
+		final List<Image> imageList = new ArrayList<>();
 		for (final Integer severity : severityList) {
 			// Shifting index by 1, as 0 size images are not allowed
 			imageList.add(new Image(Display.getCurrent(), index + 1, severity + 1));
@@ -433,7 +433,7 @@
 	 * @return
 	 */
 	private List<Color> createColorList(int index, List<Integer> severityList) {
-		final List<Color> colorList = new ArrayList<Color>();
+		final List<Color> colorList = new ArrayList<>();
 		for (final Integer severity : severityList) {
 			colorList.add(new Color(Display.getCurrent(), 0, index, severity));
 		}
@@ -444,7 +444,7 @@
 	 * @return
 	 */
 	private List<Integer> createListOfSeverities() {
-		final List<Integer> listOfSeverties = new ArrayList<Integer>();
+		final List<Integer> listOfSeverties = new ArrayList<>();
 		listOfSeverties.add(Diagnostic.OK);
 		listOfSeverties.add(Diagnostic.WARNING);
 		listOfSeverties.add(Diagnostic.ERROR);
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 5a67383..d01ad7f 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
@@ -83,7 +83,7 @@
 		final EMFFormsEditSupport editSupport = mock(EMFFormsEditSupport.class);
 		setup();
 
-		final HashSet<VTStyleProperty> styleProperties = new HashSet<VTStyleProperty>();
+		final HashSet<VTStyleProperty> styleProperties = new HashSet<>();
 		unsettableStyleProperty = VTUnsettableFactory.eINSTANCE.createUnsettableStyleProperty();
 		styleProperties.add(unsettableStyleProperty);
 		when(viewTemplateProvider.getStyleProperties(getvControl(), getContext())).thenReturn(styleProperties);
@@ -91,7 +91,7 @@
 			getLabelProvider(),
 			getTemplateProvider(), editSupport));
 
-		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class);
+		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class); //$NON-NLS-1$
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
 			testDisplayName);
 
@@ -165,7 +165,7 @@
 	@Test
 	public void unsetButtonAlignmentLeftSet() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		unsettableStyleProperty.setButtonAlignment(ButtonAlignmentType.LEFT);
-		eObject.setName("TEST");
+		eObject.setName("TEST"); //$NON-NLS-1$
 		final Control render = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		final Composite renderedComposite = (Composite) render;
 		final Composite controlComposite = (Composite) renderedComposite.getChildren()[0];
@@ -177,7 +177,7 @@
 	public void unsetButtonAlignmentLeftSetToUnsetToSet()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		unsettableStyleProperty.setButtonAlignment(ButtonAlignmentType.LEFT);
-		eObject.setName("TEST");
+		eObject.setName("TEST"); //$NON-NLS-1$
 		final Control render = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		final Composite renderedComposite = (Composite) render;
 		final Composite controlComposite = (Composite) renderedComposite.getChildren()[0];
@@ -227,7 +227,7 @@
 	@Test
 	public void unsetButtonAlignmentRightSet() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		unsettableStyleProperty.setButtonAlignment(ButtonAlignmentType.RIGHT);
-		eObject.setName("TEST");
+		eObject.setName("TEST"); //$NON-NLS-1$
 		final Control render = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		final Composite renderedComposite = (Composite) render;
 		final Composite controlComposite = (Composite) renderedComposite.getChildren()[0];
@@ -239,7 +239,7 @@
 	public void unsetButtonAlignmentRightSetToUnsetToSet()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		unsettableStyleProperty.setButtonAlignment(ButtonAlignmentType.RIGHT);
-		eObject.setName("TEST");
+		eObject.setName("TEST"); //$NON-NLS-1$
 		final Control render = renderControl(new SWTGridCell(0, 2, getRenderer()));
 		final Composite renderedComposite = (Composite) render;
 		final Composite controlComposite = (Composite) renderedComposite.getChildren()[0];
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 9de7245..90d9ecd 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
@@ -85,7 +85,7 @@
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
 		NoLabelFoundException {
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
-			Observables.constantObservableValue("antiException", String.class));
+			Observables.constantObservableValue("antiException", String.class)); //$NON-NLS-1$
 		setMockLabelAlignment(LabelAlignment.NONE);
 		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
 		when(mockedObservableValue.getRealm()).thenReturn(realm);
@@ -106,7 +106,7 @@
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
 		NoLabelFoundException {
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
-			Observables.constantObservableValue("antiException", String.class));
+			Observables.constantObservableValue("antiException", String.class)); //$NON-NLS-1$
 		setMockLabelAlignment(LabelAlignment.LEFT);
 		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
 		when(mockedObservableValue.getRealm()).thenReturn(realm);
@@ -143,9 +143,9 @@
 		assertTrue(Text.class.isInstance(textRender));
 		assertEquals(SWT.LEFT, Text.class.cast(textRender).getStyle()
 			& SWT.LEFT);
-		assertEquals("org_eclipse_emf_ecp_control_string", Text.class.cast(textRender).getData(CUSTOM_VARIANT));
-		assertEquals(UUID + "#control", textRender.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals(UUID + "#control", render.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
+		assertEquals("org_eclipse_emf_ecp_control_string", Text.class.cast(textRender).getData(CUSTOM_VARIANT)); //$NON-NLS-1$
+		assertEquals(UUID + "#control", textRender.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY)); //$NON-NLS-1$
+		assertEquals(UUID + "#control", render.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY)); //$NON-NLS-1$
 	}
 
 	@Override
@@ -158,7 +158,7 @@
 	@Test
 	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
-		final String initialValue = "initial";
+		final String initialValue = "initial"; //$NON-NLS-1$
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
 			EcorePackage.eINSTANCE.getENamedElement_Name());
 		final Text text = setUpDatabindingTest(mockedObservable);
@@ -171,8 +171,8 @@
 	@SuppressWarnings("unchecked")
 	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
-		final String initialValue = "initial";
-		final String changedValue = "changed";
+		final String initialValue = "initial"; //$NON-NLS-1$
+		final String changedValue = "changed"; //$NON-NLS-1$
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
 			EcorePackage.eINSTANCE.getENamedElement_Name());
 
@@ -186,8 +186,8 @@
 	@Test
 	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
-		final String initialValue = "initial";
-		final String changedValue = "changed";
+		final String initialValue = "initial"; //$NON-NLS-1$
+		final String changedValue = "changed"; //$NON-NLS-1$
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
 			EcorePackage.eINSTANCE.getENamedElement_Name());
 
@@ -211,7 +211,7 @@
 	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
-			Observables.constantObservableValue("antiException"));
+			Observables.constantObservableValue("antiException")); //$NON-NLS-1$
 		Mockito.reset(getDatabindingService());
 		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
@@ -237,7 +237,7 @@
 	@SuppressWarnings({ "rawtypes" })
 	public void testLabelServiceUsageTextField() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
 		DatabindingFailedException, NoLabelFoundException {
-		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class);
+		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class); //$NON-NLS-1$
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
 			testDisplayName);
 
@@ -266,10 +266,10 @@
 	public void testEffectivelyReadOnlyDeactivatesControl()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
 		NoLabelFoundException {
-		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, "",
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, "", //$NON-NLS-1$
 			EcorePackage.eINSTANCE.getENamedElement_Name());
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
-			Observables.constantObservableValue("antiException"));
+			Observables.constantObservableValue("antiException")); //$NON-NLS-1$
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(mockedObservable, new ObservingWritableValue(mockedObservable));
 		when(getDatabindingService().getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8218770..2dbb2af 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.test;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 1e9dc69..9d4d674 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 2bd5a7a..c8fea8d 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.21.0.qualifier"
+      version="1.22.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.21.0.qualifier">
+      license-feature-version="1.22.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 3746225..9260ce6 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 019c4c7..4fe9fd7 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.0"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.provider;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.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 44d8810..64678f9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 54fc655..8fec995 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.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.21.0";
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.test;version="1.22.0";
   uses:="org.eclipse.emf.ecore,
    org.eclipse.core.databinding,
    org.eclipse.emf.ecp.view.context,
@@ -17,24 +17,24 @@
    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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.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 d96acbd..e73eebf 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.dynamictree.model/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 72325cf..48ec826 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,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.model;version="1.21.0",
- org.eclipse.emf.ecp.view.dynamictree.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.dynamictree.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.dynamictree.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.dynamictree.model.util;version="1.22.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.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)";visibility:=reexport,
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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
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 ece59c1..f4f9961 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDomainModelReferenceImpl.java b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDomainModelReferenceImpl.java
index 2e9dcbf..e166dc2 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDomainModelReferenceImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDomainModelReferenceImpl.java
@@ -96,7 +96,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -257,7 +257,6 @@
 	 *
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d3cca5f..2671aa5 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,20 +2,20 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui.swt;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui.swt;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.spi.core.services.databinding;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.22.0,1.23.0)",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
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 cc42cae..746a12c 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.dynamictree.ui/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1543beb..89cd45c 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Dynamic Tree UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.ui;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.9.0,4.0.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.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
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 f860967..0fc3874 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.edapt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5fb03c9..815de22 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,31 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.edapt.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.test._140to1170;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.test._160to1170;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.test.model;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.test.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.test.model.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.edapt.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test._1160to1200;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test._140to1170;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test._160to1170;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test.model;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test.model.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.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.section.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.section.model;bundle-version="[1.22.0,1.23.0)"
 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/pom.xml b/tests/org.eclipse.emf.ecp.view.edapt.test/pom.xml
index e687242..458b820 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.edapt.util.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bf2006d..bb085f5 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,42 +2,42 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt.util.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.21.0",
- org.eclipse.emf.ecp.view.edapt.util.test.model.a;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.b;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.c;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.d;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.e;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.f;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.w;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.y;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.z;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.22.0",
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.22.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)"
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 cf22c05..acde9e8 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 06931f6..5aa5bcc 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.group.ui.swt.test;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.group.ui.swt.test;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.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 b791f55..82904ad 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 883053d..1ef74f5 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.horizontal.ui.swt.test;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.horizontal.ui.swt.test;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.jface;bundle-version="3.8.102",
- org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.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 990c484..bc3472f 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 00d7896..645ed36 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.index.test.example;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.index.test.example.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.index.test.example.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.indexdmr.model.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.index.test.example;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.index.test.example.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.index.test.example.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.indexdmr.model.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.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 087afd4..d298a25 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e60e99a..719e3b0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.keyattribute.test.example;version="1.21.0",
- org.eclipse.emf.ecp.view.keyattribute.test.example.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.keyattribute.test.example.util;version="1.21.0",
- org.eclipse.emf.ecp.view.keyattributedmr.model.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.keyattribute.test.example;version="1.22.0",
+ org.eclipse.emf.ecp.view.keyattribute.test.example.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.keyattribute.test.example.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.keyattributedmr.model.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.22.0,1.23.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 d5f4043..00fb100 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9b1dc1f..78f86a0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.mapping.test.example;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.mapping.test.example.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.mapping.test.example.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.mappingdmr.model.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.mapping.test.example;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.mapping.test.example.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.mapping.test.example.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.mappingdmr.model.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.22.0,1.23.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 ce26fb7..3401666 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.migrator.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.migrator.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.migrator.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.migrator.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e1d9183..dad8b69 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Template Tooling Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.migrator.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.21.0"
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.22.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)"
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 80020f1..5d8918f 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2d80b73..2b581ce 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.22.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)"
 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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 1642e1d..cc49b57 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.21.0-SNAPSHOT</version>
+		<version>1.22.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/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.edit.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 846ff67..4b80ea9 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.edit.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.edit.test;version="1.22.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 000d053..d1ae5e9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 88219ed..62496db 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.21.0.qualifier">
+      version="1.22.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 3406043..f555d2d 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.21.0-SNAPSHOT</version>
+    <version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/.classpath b/tests/org.eclipse.emf.ecp.view.model.editor.test/.classpath
new file mode 100644
index 0000000..3e5654f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.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.editor.test/.project b/tests/org.eclipse.emf.ecp.view.model.editor.test/.project
new file mode 100644
index 0000000..33f075f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.view.model.editor.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.editor.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.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.editor.test/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.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.editor.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..df3d5b4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,418 @@
+eclipse.preferences.version=1

+org.eclipse.jdt.core.builder.cleanOutputFolder=clean

+org.eclipse.jdt.core.builder.duplicateResourceTask=warning

+org.eclipse.jdt.core.builder.invalidClasspath=abort

+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore

+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=

+org.eclipse.jdt.core.circularClasspath=error

+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error

+org.eclipse.jdt.core.codeComplete.argumentPrefixes=

+org.eclipse.jdt.core.codeComplete.argumentSuffixes=

+org.eclipse.jdt.core.codeComplete.fieldPrefixes=

+org.eclipse.jdt.core.codeComplete.fieldSuffixes=

+org.eclipse.jdt.core.codeComplete.localPrefixes=

+org.eclipse.jdt.core.codeComplete.localSuffixes=

+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=

+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=

+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=

+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=

+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled

+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore

+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull

+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault

+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable

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

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

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.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.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.editor.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.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.editor.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..6ed4937
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.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">/**\n * @return the ${bare_field_name}\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">/**\n * @param ${param} the ${bare_field_name} to set\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">/**\n * ${tags}\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">/*******************************************************************************\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n * \n * Contributors\:\n * ${user} - initial API and implementation\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">/**\n * @author ${user}\n *\n * ${tags}\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">/**\n * ${tags}\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">/**\n * {@inheritDoc}\n * ${see_to_overridden}\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">/**\n * ${tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\n\t\t\t// Log AND handle Exceptions if possible \n            //\n            // You can just uncomment one of the lines below to log an exception\:\n\t\t\t// logException will show the logged excpetion to the user\n\t\t\t// ModelUtil.logException(${exception_var});\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// logWarning will only add the message to the error log\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\n\t\t\t//\t\t\t\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\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}\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.editor.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.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.editor.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.editor.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..cfb400b
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+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_FIELD=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_DEFAULT_METHOD=Ignore
+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_ANNOTATION=Warning
+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
+changed_execution_env=Error
+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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
+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.editor.test/.settings/org.eclipse.pde.core.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.test/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.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.editor.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.editor.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..097dc6c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: View Model Editor Tests
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.editor.test
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.22.0,1.23.0)"
+Automatic-Module-Name: org.eclipse.emf.ecp.view.model.editor.test
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.refactoring;version="1.22.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/build.properties
new file mode 100644
index 0000000..342f3ff
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               resources/
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/pom.xml
new file mode 100644
index 0000000..92b0bf6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/pom.xml
@@ -0,0 +1,46 @@
+<?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.22.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.test</artifactId>
+	<version>1.22.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+			<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.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/build.properties
new file mode 100644
index 0000000..38fcf85
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/build.properties
@@ -0,0 +1,4 @@
+bin.includes = plugin.xml,\
+               views/,\
+               .,\
+               META-INF/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/build.properties-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/build.properties-final
new file mode 100644
index 0000000..3ad7f45
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/build.properties-final
@@ -0,0 +1,2 @@
+bin.includes = .,\
+               META-INF/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/plugin.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/plugin.xml
new file mode 100644
index 0000000..3846d6d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      <file
+            filePath="views/test.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/views/test.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/views/test.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryFirstInProperties/views/test.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/build.properties
new file mode 100644
index 0000000..d431fdc
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/build.properties
@@ -0,0 +1,4 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               views/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/build.properties-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/build.properties-final
new file mode 100644
index 0000000..3ad7f45
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/build.properties-final
@@ -0,0 +1,2 @@
+bin.includes = .,\
+               META-INF/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/plugin.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/plugin.xml
new file mode 100644
index 0000000..3846d6d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      <file
+            filePath="views/test.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/views/test.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/views/test.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryLastInProperties/views/test.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/build.properties
new file mode 100644
index 0000000..baac44d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/build.properties
@@ -0,0 +1,4 @@
+bin.includes = .,\
+               plugin.xml,\
+               views/,\
+               META-INF/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/build.properties-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/build.properties-final
new file mode 100644
index 0000000..3ad7f45
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/build.properties-final
@@ -0,0 +1,2 @@
+bin.includes = .,\
+               META-INF/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/plugin.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/plugin.xml
new file mode 100644
index 0000000..3846d6d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      <file
+            filePath="views/test.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/views/test.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/views/test.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/lastEntryMidInProperties/views/test.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/build.properties
new file mode 100644
index 0000000..d431fdc
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/build.properties
@@ -0,0 +1,4 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               views/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/build.properties-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/build.properties-final
new file mode 100644
index 0000000..d431fdc
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/build.properties-final
@@ -0,0 +1,4 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               views/
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/plugin.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/plugin.xml
new file mode 100644
index 0000000..56deee4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      <file
+            filePath="views/test.view">
+      </file>
+      <file
+            filePath="views/test2.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/plugin.xml-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/plugin.xml-final
new file mode 100644
index 0000000..577acc6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/plugin.xml-final
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      
+      <file
+            filePath="views/test2.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/views/test.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/views/test.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/views/test.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/views/test2.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/views/test2.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntries/views/test2.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/build.properties
new file mode 100644
index 0000000..20e3a04
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/build.properties
@@ -0,0 +1,5 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               views/test.view,\
+               views/test2.view
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/build.properties-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/build.properties-final
new file mode 100644
index 0000000..e92078b
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/build.properties-final
@@ -0,0 +1,4 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               views/test2.view
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/plugin.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/plugin.xml
new file mode 100644
index 0000000..56deee4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      <file
+            filePath="views/test.view">
+      </file>
+      <file
+            filePath="views/test2.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/plugin.xml-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/plugin.xml-final
new file mode 100644
index 0000000..577acc6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/plugin.xml-final
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      
+      <file
+            filePath="views/test2.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/views/test.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/views/test.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/views/test.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/views/test2.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/views/test2.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPaths/views/test2.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/build.properties b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/build.properties
new file mode 100644
index 0000000..1e15f5e
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/build.properties
@@ -0,0 +1,5 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               test.view,\
+               test2.view
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/build.properties-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/build.properties-final
new file mode 100644
index 0000000..92b1815
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/build.properties-final
@@ -0,0 +1,4 @@
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               test2.view
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/plugin.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/plugin.xml
new file mode 100644
index 0000000..1c5c2ce
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      <file
+            filePath="test.view">
+      </file>
+      <file
+            filePath="test2.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/plugin.xml-final b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/plugin.xml-final
new file mode 100644
index 0000000..b27f8af
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/plugin.xml-final
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+
+      
+      <file
+            filePath="test2.view">
+      </file>
+   </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/test.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/test.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/test.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/test2.view b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/test2.view
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/resources/multipleEntriesPathsRoot/test2.view
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test/src/org/eclipse/emf/ecp/view/model/refactoring/ViewModelDeleteParticipant_PTest.java b/tests/org.eclipse.emf.ecp.view.model.editor.test/src/org/eclipse/emf/ecp/view/model/refactoring/ViewModelDeleteParticipant_PTest.java
new file mode 100644
index 0000000..4de84d0
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test/src/org/eclipse/emf/ecp/view/model/refactoring/ViewModelDeleteParticipant_PTest.java
@@ -0,0 +1,125 @@
+package org.eclipse.emf.ecp.view.model.refactoring;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Optional;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.ecp.view.model.presentation.ContributionUtil;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class ViewModelDeleteParticipant_PTest {
+
+	@Parameters(name = "project:{0}")
+	public static Object[] parameters() {
+		return new Object[][] {
+			{ "multipleEntries", "views/test.view" },
+			{ "multipleEntriesPaths", "views/test.view" },
+			{ "multipleEntriesPathsRoot", "test.view" },
+			{ "lastEntryLastInProperties", "views/test.view" },
+			{ "lastEntryMidInProperties", "views/test.view" },
+			{ "lastEntryFirstInProperties", "views/test.view" },
+		};
+	}
+
+	private ViewModelDeleteParticipant participant;
+	private final String projectName;
+	private final String viewModelToDelete;
+
+	public ViewModelDeleteParticipant_PTest(String projectName, String viewModelToDelete) {
+		this.projectName = projectName;
+		this.viewModelToDelete = viewModelToDelete;
+	}
+
+	@Before
+	public void setUp() throws Exception {
+		participant = new ViewModelDeleteParticipant();
+	}
+
+	private 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;
+	}
+
+	private static IResource importFileIntoProject(IContainer container, File file, IProgressMonitor monitor)
+		throws CoreException, IOException {
+		if (file.isDirectory()) {
+			final IPath folderPath = container.getProjectRelativePath().append(file.getName());
+			final IFolder folder = container.getFolder(folderPath);
+			folder.create(true, true, monitor);
+			for (final File child : file.listFiles()) {
+				importFileIntoProject(folder, child, monitor);
+			}
+			return folder;
+		}
+		final IFile targetResource = container.getFile(new Path(file.getName()));
+		final InputStream contentStream = new FileInputStream(file);
+		targetResource.create(contentStream, false, monitor);
+		contentStream.close();
+		return targetResource;
+
+	}
+
+	private 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;
+	}
+
+	@Test
+	public void testCreateChangeIProgressMonitor() throws CoreException, IOException {
+		final IProject project = createAndPopulateProject(projectName, new NullProgressMonitor());
+		final IFile viewFile = project.getFile(viewModelToDelete);
+		viewFile.delete(true, new NullProgressMonitor());
+		participant.initialize(viewFile);
+		final Change change = participant.createChange(new NullProgressMonitor());
+		change.perform(new NullProgressMonitor());
+		// assert project
+
+		final Optional<String> buildProperties = ContributionUtil.parseIFile(project.getFile("build.properties"));
+		final Optional<String> buildPropertiesFinal = ContributionUtil
+			.parseIFile(project.getFile("build.properties-final"));
+		final Optional<String> pluginXml = ContributionUtil.parseIFile(project.getFile("plugin.xml"));
+		final Optional<String> pluginXmlFinal = ContributionUtil.parseIFile(project.getFile("plugin.xml-final"));
+
+		assertTrue(buildProperties.isPresent() == buildPropertiesFinal.isPresent());
+		assertTrue(pluginXml.isPresent() == pluginXmlFinal.isPresent());
+		assertEquals(buildPropertiesFinal.get(), buildProperties.get());
+		if (pluginXml.isPresent()) {
+			assertEquals(pluginXmlFinal.get(), pluginXml.get());
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bdca27f..d1584f6 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.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 7269098..33e33bc 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 29d2c99..bb2e8fa 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.21.0.qualifier
-Export-Package: org.eclipse.emf.ecp.view.model.integrationtest;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Export-Package: org.eclipse.emf.ecp.view.model.integrationtest;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.section.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.annotation.model.edit;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.section.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.annotation.model.edit;bundle-version="[1.22.0,1.23.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 478d8e1..40ab313 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.model.preview.common.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.preview.common.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.preview.common.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.preview.common.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 988084b..d3bc0ac 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Preview Common Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.common.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.22.0,1.23.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)",
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 1d5ad4d..1f20526 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
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
index e4e3c00..cfb400b 100644
--- 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
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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
index ea64538..6645c9a 100644
--- 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
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Generator Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.generator.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.22.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)"
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
index 4fa88fa..1b7792e 100644
--- 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
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8d1f7f6..de25315 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.provider.xmi;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.model.provider.xmi.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.provider.xmi;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.provider.xmi.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.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/ViewModelFileExtensionsManager_ITest.launch b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/ViewModelFileExtensionsManager_ITest.launch
index 3c65a5b..23e8750 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/ViewModelFileExtensionsManager_ITest.launch
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/ViewModelFileExtensionsManager_ITest.launch
@@ -1,43 +1,44 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">

-<booleanAttribute key="append.args" value="true"/>

-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>

-<booleanAttribute key="askclear" value="false"/>

-<booleanAttribute key="automaticAdd" value="false"/>

-<booleanAttribute key="automaticValidate" value="false"/>

-<stringAttribute key="bootstrap" value=""/>

-<stringAttribute key="checked" value="[NONE]"/>

-<booleanAttribute key="clearConfig" value="true"/>

-<booleanAttribute key="clearws" value="true"/>

-<booleanAttribute key="clearwslog" value="false"/>

-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/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.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/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.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.model.provider.xmi.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.model.provider.xmi.test"/>

-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>

-<stringAttribute key="pde.version" value="3.3"/>

-<stringAttribute key="product" value="org.eclipse.platform.ide"/>

-<booleanAttribute key="run_in_ui_thread" value="true"/>

-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,javax.xml@default:default,lpg.runtime.java@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@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.edapt.common@default:default,org.eclipse.emf.edapt.declaration@default:default,org.eclipse.emf.edapt.history@default:default,org.eclipse.emf.edapt.migration@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.ocl.common@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.hamcrest.core@default:default,org.junit@default:default,org.mockito.mockito-all@default:default"/>

-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.edapt@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.edapt@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@default:default,org.eclipse.emf.ecp.view.table.edapt@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@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@default:default,org.eclipse.emfforms.localization@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="false"/>

-</launchConfiguration>

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/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.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/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.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.model.provider.xmi.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.model.provider.xmi.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,lpg.runtime.java@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@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.edapt.common@default:default,org.eclipse.emf.edapt.declaration@default:default,org.eclipse.emf.edapt.history@default:default,org.eclipse.emf.edapt.migration@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.ocl.common@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt@default:default,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.edit@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.edapt@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.edapt@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@default:default,org.eclipse.emf.ecp.view.table.edapt@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emfforms.common.validation@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@default:default,org.eclipse.emfforms.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"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
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 e7c3b37..3bd0ed4 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_ITest.java b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_ITest.java
index 8f95f02..7739434 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_ITest.java
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_ITest.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 2.0
@@ -10,9 +10,14 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 547787
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.provider.xmi;
 
+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.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -22,6 +27,7 @@
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -39,11 +45,15 @@
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
 
 /**
  * @author Jonas
  *
  */
+@RunWith(Parameterized.class)
 public class ViewModelFileExtensionsManager_ITest {
 
 	private static final String FILEPATH = "viewmodel.view";
@@ -53,6 +63,32 @@
 	private ViewModelFileExtensionsManager manager;
 	private final EClass eClass1 = BowlingPackage.eINSTANCE.getLeague();
 
+	/** Test parameter for keys to require matching in the view look-up. */
+	private final Set<String> requiredKeys;
+
+	/**
+	 * Test parameter for whether the look-up is expected to match the required keys.
+	 * <strong>Note</strong> that many tests are not sensitive to the required keys at all,
+	 * so they may not make assertions on the basis of this expectation. Its purpose is to
+	 * control tests that are sensitive to the specification of required keys.
+	 */
+	private final boolean expectProvided;
+
+	public ViewModelFileExtensionsManager_ITest(Set<String> requiredKeys, boolean expectProvided) {
+		super();
+
+		this.requiredKeys = requiredKeys;
+		this.expectProvided = expectProvided;
+	}
+
+	@Parameters(name = "requiredKeys={0}")
+	public static Iterable<Object[]> parameters() {
+		return Arrays.asList(new Object[][] {
+			{ Collections.emptySet(), true },
+			{ Collections.singleton("a"), false },
+		});
+	}
+
 	@Before
 	public void init() throws IOException {
 		ViewModelFileExtensionsManager.dispose();
@@ -95,7 +131,8 @@
 			Collections.<String, String> emptyMap(), "");
 		manager.registerView(view, extensionDescription);
 		final EObject eObject = EcoreUtil.create(eClass1);
-		assertTrue(manager.hasViewModelFor(eObject, null));
+
+		assertThat(manager.hasViewModelFor(eObject, null, requiredKeys), is(expectProvided));
 	}
 
 	@Test
@@ -106,7 +143,9 @@
 			Collections.<String, String> emptyMap(), "");
 		manager.registerView(view, extensionDescription);
 		final EObject eObject = EcoreUtil.create(eClass1);
-		assertTrue(manager.hasViewModelFor(eObject, VViewFactory.eINSTANCE.createViewModelLoadingProperties()));
+		assertThat(
+			manager.hasViewModelFor(eObject, VViewFactory.eINSTANCE.createViewModelLoadingProperties(), requiredKeys),
+			is(expectProvided));
 	}
 
 	@Test
@@ -120,7 +159,9 @@
 		final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addInheritableProperty("key", "value");
-		assertTrue(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+
+		assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
+			is(expectProvided));
 	}
 
 	@Test
@@ -134,7 +175,9 @@
 		final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addNonInheritableProperty("key", "value");
-		assertTrue(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+
+		assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
+			is(expectProvided));
 	}
 
 	@Test
@@ -145,7 +188,7 @@
 			Collections.singletonMap("key", "value"), "");
 		manager.registerView(view, extensionDescription);
 		final EObject eObject = EcoreUtil.create(eClass1);
-		assertFalse(manager.hasViewModelFor(eObject, null));
+		assertFalse(manager.hasViewModelFor(eObject, null, requiredKeys));
 	}
 
 	@Test
@@ -156,7 +199,8 @@
 			Collections.singletonMap("key", "value"), "");
 		manager.registerView(view, extensionDescription);
 		final EObject eObject = EcoreUtil.create(eClass1);
-		assertFalse(manager.hasViewModelFor(eObject, VViewFactory.eINSTANCE.createViewModelLoadingProperties()));
+		assertFalse(
+			manager.hasViewModelFor(eObject, VViewFactory.eINSTANCE.createViewModelLoadingProperties(), requiredKeys));
 	}
 
 	@Test
@@ -170,7 +214,9 @@
 		final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addInheritableProperty("key", "value");
-		assertTrue(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+
+		assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
+			is(expectProvided));
 	}
 
 	@Test
@@ -184,7 +230,9 @@
 		final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addNonInheritableProperty("key", "value");
-		assertTrue(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+
+		assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
+			is(expectProvided));
 	}
 
 	@Test
@@ -198,7 +246,7 @@
 		final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addInheritableProperty("key", "value");
-		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
 	}
 
 	@Test
@@ -212,7 +260,7 @@
 		final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addNonInheritableProperty("key", "value");
-		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
 	}
 
 	@Test
@@ -229,7 +277,7 @@
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addInheritableProperty("key", "value");
 		viewModelLoadingProperties.addInheritableProperty("key1", "value");
-		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
 	}
 
 	@Test
@@ -246,7 +294,7 @@
 			.createViewModelLoadingProperties();
 		viewModelLoadingProperties.addNonInheritableProperty("key", "value");
 		viewModelLoadingProperties.addNonInheritableProperty("key1", "value");
-		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties));
+		assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
 	}
 
 	@Test
@@ -258,9 +306,15 @@
 			Collections.<String, String> emptyMap(), "");
 		manager.registerView(view, extensionDescription);
 		final EObject eObject = EcoreUtil.create(eClass1);
-		final VView foundView = manager.createView(eObject, null);
-		assertNull(view.getLoadingProperties());
-		assertEquals(VIEWNAME, foundView.getName());
+		final VView foundView = manager.createView(eObject, null, requiredKeys);
+
+		if (expectProvided) {
+			assertThat(foundView, notNullValue());
+			assertNull(view.getLoadingProperties());
+			assertEquals(VIEWNAME, foundView.getName());
+		} else {
+			assertThat(foundView, nullValue());
+		}
 	}
 
 	@Test
@@ -276,10 +330,16 @@
 		final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
 		properties.addInheritableProperty("key", "value");
 
-		final VView foundView = manager.createView(eObject, properties);
-		assertNotNull(foundView.getLoadingProperties());
-		assertEquals("value", foundView.getLoadingProperties().get("key"));
-		assertEquals(VIEWNAME, foundView.getName());
+		final VView foundView = manager.createView(eObject, properties, requiredKeys);
+
+		if (expectProvided) {
+			assertThat(foundView, notNullValue());
+			assertNotNull(foundView.getLoadingProperties());
+			assertEquals("value", foundView.getLoadingProperties().get("key"));
+			assertEquals(VIEWNAME, foundView.getName());
+		} else {
+			assertThat(foundView, nullValue());
+		}
 	}
 
 	@Test
@@ -294,7 +354,7 @@
 
 		final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
 
-		assertNull(manager.createView(eObject, properties));
+		assertNull(manager.createView(eObject, properties, requiredKeys));
 	}
 
 	@Test
@@ -324,7 +384,7 @@
 		properties.addInheritableProperty("a", "value");
 		properties.addInheritableProperty("b", "value");
 
-		final VView foundView = manager.createView(eObject, properties);
+		final VView foundView = manager.createView(eObject, properties, requiredKeys);
 		assertNotNull(foundView.getLoadingProperties());
 		assertEquals("value", foundView.getLoadingProperties().get("a"));
 		assertEquals("value", foundView.getLoadingProperties().get("b"));
@@ -355,7 +415,7 @@
 		properties.addInheritableProperty("a", "value");
 		properties.addInheritableProperty("b", "value");
 
-		final VView foundView = manager.createView(eObject, properties);
+		final VView foundView = manager.createView(eObject, properties, requiredKeys);
 		assertNotNull(foundView);
 		assertNotNull(foundView.getLoadingProperties());
 		assertEquals("value", foundView.getLoadingProperties().get("a"));
@@ -386,7 +446,7 @@
 		properties.addInheritableProperty("a", "value");
 		properties.addInheritableProperty("b", "value");
 
-		final VView foundView = manager.createView(eObject, properties);
+		final VView foundView = manager.createView(eObject, properties, requiredKeys);
 		assertNotNull(foundView);
 		assertNotNull(foundView.getLoadingProperties());
 		assertEquals("value", foundView.getLoadingProperties().get("a"));
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a76e929..84aa1f6 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.model;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.model;version="1.22.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"
 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.21.0,1.22.0)"
+Import-Package: org.eclipse.emf.ecp.view.spi.group.model;version="[1.22.0,1.23.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 dda324b..14cc3eb 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.rule.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.rule.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f0bd569..8be14ca 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,36 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.rule.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.rule;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.rule.test;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.rule.ui.swt.test,org.eclipse.emf.ecp.view.unset.test",
+ org.eclipse.emf.ecp.view.spi.rule;version="1.22.0";x-internal:=true
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.validation;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.validation;bundle-version="[1.22.0,1.23.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.databinding;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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.emf.ecp.view.rule.test
-Import-Package: org.eclipse.emf.ecp.view.spi.validation;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emf.ecp.view.spi.validation;version="[1.22.0,1.23.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 bef292b..46d5fa7 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/IterateCondition_PTest.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/IterateCondition_PTest.java
index 4ea11b7..e9b5582 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/IterateCondition_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/IterateCondition_PTest.java
@@ -25,6 +25,7 @@
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -132,7 +133,10 @@
 
 	@Test
 	public void references() {
-		assertThat(getDomainModelReferences(), is(getDomainModelReferences(inner)));
+		final Set<VDomainModelReference> expected = new LinkedHashSet<>();
+		expected.addAll(getDomainModelReferences(inner));
+		expected.add(getFixture().getItemReference());
+		assertThat(getDomainModelReferences(), is(expected));
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1ac56fb..69d27c0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.rule;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.rule.ui.swt.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.rule;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.rule.ui.swt.test;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.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 4651361..31032dd 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7ddc84f..0aba3a0 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.section.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.section.swt;version="1.21.0"
+Fragment-Host: org.eclipse.emf.ecp.view.section.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.section.swt;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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 482934b..b244bf9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 624a415..b8805df 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.stack.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.stack.ui.swt.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.stack.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.stack.ui.swt.test;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.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 0b99956..ed76dd1 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.table.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.table.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.table.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.table.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 da299bf..dfd9a25 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.table.model.util;version="1.21.0",
- org.eclipse.emf.ecp.view.table.model.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.table.model.util;version="1.22.0",
+ org.eclipse.emf.ecp.view.table.model.test;version="1.22.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 66847c5..7c9f14c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.table.test.common/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.table.test.common/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.table.test.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.table.test.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 04e6b4c..f64b336 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.table.test.common;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)"
+Export-Package: org.eclipse.emf.ecp.view.table.test.common;version="1.22.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.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 bd7c044..f2eb327 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.21.0-SNAPSHOT</version>

+    <version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableControlHandle.java b/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableControlHandle.java
index e3039b6..50fb6ea 100644
--- a/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableControlHandle.java
+++ b/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableControlHandle.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 2.0
@@ -10,10 +10,14 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.table.test.common;
 
 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.table.model.VTableControl;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
 
@@ -27,6 +31,11 @@
 		setTableControl(tableControl);
 	}
 
+	/**
+	 * Some services expect everything to be in a view, such as the
+	 * {@code EMFFormsMappingProviderTable}.
+	 */
+	private VView view;
 	private VTableControl tableControl;
 	private VDomainModelReference tableColumn1;
 	private VDomainModelReference tableColumn2;
@@ -93,4 +102,35 @@
 		this.tableColumn2 = tableColumn2;
 	}
 
+	/**
+	 * Obtain a view containing the table, for tests that need it.
+	 *
+	 * @return a view containing the table
+	 *
+	 * @since 1.22
+	 */
+	public VView getView() {
+		if (view == null && getTableControl() != null) {
+			view = VViewFactory.eINSTANCE.createView();
+
+			// Infer the root EClass from the table's DMR
+			final VTableDomainModelReference tdmr = (VTableDomainModelReference) getTableControl()
+				.getDomainModelReference();
+			if (tdmr.getDomainModelEFeature() != null) {
+				view.setRootEClass(tdmr.getDomainModelEFeature().getEContainingClass());
+			} else if (tdmr.getDomainModelReference() instanceof VFeaturePathDomainModelReference) {
+				final VFeaturePathDomainModelReference fpdmr = (VFeaturePathDomainModelReference) tdmr
+					.getDomainModelReference();
+				if (!fpdmr.getDomainModelEReferencePath().isEmpty()) {
+					view.setRootEClass(fpdmr.getDomainModelEReferencePath().get(0).getEContainingClass());
+				} else {
+					view.setRootEClass(fpdmr.getDomainModelEFeature().getEContainingClass());
+				}
+			}
+
+			view.getChildren().add(getTableControl());
+		}
+
+		return view;
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableTestUtil.java b/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableTestUtil.java
index 57c960f..8d33fae 100644
--- a/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableTestUtil.java
+++ b/tests/org.eclipse.emf.ecp.view.table.test.common/src/org/eclipse/emf/ecp/view/table/test/common/TableTestUtil.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 2.0
@@ -10,9 +10,11 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.table.test.common;
 
+import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
@@ -55,10 +57,20 @@
 	 * @return The initialized {@link TableControlHandle}
 	 */
 	public static TableControlHandle createInitializedTableWithoutTableColumns() {
+		return createInitializedTableWithoutTableColumns(EcorePackage.Literals.ECLASS__ESUPER_TYPES);
+	}
+
+	/**
+	 * Create a {@link TableControlHandle} which contains an initialized table control.
+	 *
+	 * @param reference the reference from which to get the rows of the table
+	 * @return The initialized {@link TableControlHandle}
+	 */
+	public static TableControlHandle createInitializedTableWithoutTableColumns(EReference reference) {
 		final TableControlHandle tableControlHandle = createUninitializedTableWithoutColumns();
 		final VFeaturePathDomainModelReference domainModelReference = VTableFactory.eINSTANCE
 			.createTableDomainModelReference();
-		domainModelReference.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
+		domainModelReference.setDomainModelEFeature(reference);
 		tableControlHandle.getTableControl().setDomainModelReference(domainModelReference);
 
 		return tableControlHandle;
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/AllIntegrationTests for view.table.ui.nebula.grid.launch b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/AllIntegrationTests for view.table.ui.nebula.grid.launch
index 07722d7..3acf339 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/AllIntegrationTests for view.table.ui.nebula.grid.launch
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/AllIntegrationTests for view.table.ui.nebula.grid.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.emf.ecp.view.table.ui.nebula.grid.test.AllIntegrationTests"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -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.constants@default:default,org.apache.batik.css*1.9.1.v20180313-1559@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.9.1.v20180227-1645@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.scr@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.6.200.v20180509-1517@default:default,org.eclipse.core.databinding.beans*1.4.100.v20180403-0944@default:default,org.eclipse.core.databinding.observable*1.6.200.v20180424-1922@default:default,org.eclipse.core.databinding.property*1.6.200.v20180403-0944@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.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.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.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.team.core@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.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.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.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.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.locale@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.nebula.grid.test@default:false,org.eclipse.emf.ecp.view.table.ui.nebula.grid@default:default,org.eclipse.emf.ecp.view.table.ui.swt*1.18.0.qualifier@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model*1.18.0.qualifier@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.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@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.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@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,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.200.v20190216-1545@default:default,org.eclipse.core.databinding.beans*1.4.400.v20190131-1604@default:default,org.eclipse.core.databinding.observable*1.6.400.v20190218-2049@default:default,org.eclipse.core.databinding.property*1.6.400.v20190215-1957@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@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.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.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.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.cocoa.macosx.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@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,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.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.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.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.locale@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@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.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@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.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@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/GridControlDetailPanelRenderer_PTest.launch b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlDetailPanelRenderer_PTest.launch
index 4d3071a..a2a3cd2 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlDetailPanelRenderer_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlDetailPanelRenderer_PTest.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.emf.ecp.view.spi.table.nebula.grid.GridControlDetailPanelRenderer_PTest"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -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,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.9.1.v20180313-1559@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.9.1.v20180227-1645@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.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.6.200.v20180509-1517@default:default,org.eclipse.core.databinding.beans*1.3.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.200.v20180424-1922@default:default,org.eclipse.core.databinding.property*1.6.200.v20180403-0944@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*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@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@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.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.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.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@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@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.cocoa.macosx.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.navigator@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@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.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.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 054bd8f..6d5c0bd 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
@@ -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.emf.ecp.view.internal.table.nebula.grid.GridTable_PTest"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -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,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.200.v20190216-1545@default:default,org.eclipse.core.databinding.beans*1.4.400.v20190131-1604@default:default,org.eclipse.core.databinding.observable*1.6.400.v20190218-2049@default:default,org.eclipse.core.databinding.property*1.6.400.v20190215-1957@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.navigator@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.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"/>
+<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.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.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@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@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.cocoa.macosx.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.navigator@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.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.label.ui.swt@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 932ff78..84c4f6e 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,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.nebula.grid.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.21.0",
- org.eclipse.emf.ecp.view.table.ui.nebula.grid.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.22.0",
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.swt.common.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.common.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding.beans;bundle-version="1.3.0",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.e4.core.contexts;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.22.0,1.23.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)"
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 f0db31c..c833f39 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.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
@@ -85,6 +85,11 @@
 								<id>org.eclipse.emf.ecp.emfstore.feature</id>
 								<versionRange>0.0.0</versionRange>
 							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.label.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
 						</extraRequirements>
 					</dependency-resolution>
 				</configuration>
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 f3fc443..f58d10a 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
@@ -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 2.0
@@ -11,14 +11,19 @@
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
  * Mat Hansen - modifications for Nebula Grid
+ * Christian W. Damus - bugs 527686, 548592
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.nebula.grid;
 
-import static org.hamcrest.MatcherAssert.assertThat;
+import static java.util.Arrays.asList;
+import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.lessThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -88,6 +93,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
@@ -390,27 +396,38 @@
 		final GridTableViewer tableViewer = GridTestsUtil.getTableViewerFromRenderer(tableRenderer);
 
 		// no initial selection
-		assertEquals(0, parentForECPView.getChildren().length);
+		assertThat("Composite for no selection not present",
+			asList(parentForECPView.getChildren()), hasItem(instanceOf(Composite.class)));
+		final Composite stackComposite = (Composite) parentForECPView.getChildren()[0];
+		final StackLayout stack = (StackLayout) stackComposite.getLayout();
+		Composite labelComposite = (Composite) stack.topControl;
+		assertThat("Composite for label not present", labelComposite, notNullValue());
+		assertThat("Label for no selection not present",
+			asList(labelComposite.getChildren()), hasItem(instanceOf(Label.class)));
 
 		// single selection
 		tableViewer.setSelection(new StructuredSelection(table.getItem(0).getData()));
-		assertEquals(1, parentForECPView.getChildren().length);
-		final Composite viewComposite = (Composite) parentForECPView.getChildren()[0];
-		final Composite detailComposite = (Composite) viewComposite.getChildren()[0];
+		Composite detailComposite = (Composite) stack.topControl;
 		assertEquals(6, detailComposite.getChildren().length);
 
-		// multi selection
+		// multi selection (it's like no selection)
 		tableViewer.setSelection(new StructuredSelection(new Object[] { table.getItem(0).getData(),
 			table.getItem(1).getData() }));
-		assertEquals(0, parentForECPView.getChildren().length);
+		detailComposite = (Composite) stack.topControl;
+		assertThat("Label for multi selection not present",
+			asList(labelComposite.getChildren()), hasItem(instanceOf(Label.class)));
 
 		// select again
 		tableViewer.setSelection(new StructuredSelection(table.getItem(0).getData()));
-		assertEquals(1, parentForECPView.getChildren().length);
+		detailComposite = (Composite) stack.topControl;
+		assertEquals(6, detailComposite.getChildren().length);
 
 		// no selection
 		tableViewer.setSelection(new StructuredSelection());
-		assertEquals(0, parentForECPView.getChildren().length);
+		labelComposite = (Composite) stack.topControl;
+		assertThat("Composite for label not present", labelComposite, notNullValue());
+		assertThat("Label for no selection not present",
+			asList(labelComposite.getChildren()), hasItem(instanceOf(Label.class)));
 	}
 
 	@Test
@@ -752,6 +769,7 @@
 		ViewModelContextWithoutServices(VElement view) {
 			this.view = view;
 			contextProvider = new org.eclipse.emfforms.internal.swt.core.di.EMFFormsContextProviderImpl();
+			contextProvider.instantiate(this);
 		}
 
 		/**
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
index 98f4f2d..f621f04 100644
--- 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
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.nebula.grid;
 
@@ -34,7 +35,7 @@
 	private GridTestsUtil() {
 	}
 
-	public static GridTableViewer getTableViewerFromRenderer(AbstractSWTRenderer<VElement> renderer) {
+	public static GridTableViewer getTableViewerFromRenderer(AbstractSWTRenderer<? extends VElement> renderer) {
 		try {
 			final Method method = TableControlSWTRenderer.class.getDeclaredMethod("getTableViewer");
 			method.setAccessible(true);
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 2bec50c..f9630ec 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
@@ -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 2.0
@@ -10,13 +10,20 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.nebula.grid;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.sameInstance;
+import static org.hamcrest.Matchers.instanceOf;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -24,7 +31,9 @@
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.text.MessageFormat;
+import java.util.Collections;
 
+import org.eclipse.emf.common.util.ECollections;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
@@ -34,11 +43,13 @@
 import org.eclipse.emf.ecore.util.EcoreUtil;
 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.context.ViewModelContextFactory;
 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.swt.masterdetail.DetailViewCache;
 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;
@@ -56,6 +67,8 @@
 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.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
 import org.eclipse.nebula.widgets.grid.Grid;
@@ -64,13 +77,17 @@
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.stubbing.Answer;
+import org.osgi.framework.Bundle;
 
 /**
  * Unit tests for the {@link GridControlDetailPanelRenderer}.
@@ -190,6 +207,7 @@
 			mock(EMFFormsLocalizationService.class));
 		final EAttribute eAttribute = EcoreFactory.eINSTANCE.createEAttribute();
 		final EReference eReference = EcoreFactory.eINSTANCE.createEReference();
+		renderer.createDetailManager(shell);
 		final VView viewAttribute1 = renderer.getView(eAttribute);
 		final VView viewReference = renderer.getView(eReference);
 		assertFalse(EcoreUtil.equals(viewAttribute1, viewReference));
@@ -366,14 +384,88 @@
 		assertTrue(detailView.isReadonly());
 	}
 
+	/**
+	 * Verify the reuse of detail renderings with caching.
+	 */
+	@Test
+	public void testDetailReused() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
+
+		final TableControlHandle handle = TableTestUtil.createInitializedTableWithoutTableColumns(
+			EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		handle.getTableControl().setDetailEditing(DetailEditing.WITH_PANEL);
+
+		final EAttribute a1 = EcoreFactory.eINSTANCE.createEAttribute();
+		a1.setName("a1");
+		final EAttribute a2 = EcoreFactory.eINSTANCE.createEAttribute();
+		a2.setName("a2");
+		domainElement.eSet(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES, ECollections.asEList(a1, a2));
+
+		final ViewModelContext context = ViewModelContextFactory.INSTANCE.createViewModelContext(
+			handle.getTableControl(), domainElement,
+			Collections.singletonMap(DetailViewCache.DETAIL_VIEW_CACHE_SIZE, 5));
+
+		final GridControlDetailPanelRenderer renderer = new GridControlDetailPanelRenderer(handle.getTableControl(),
+			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),
+			context.getService(EStructuralFeatureValueConverterService.class),
+			context.getService(EMFFormsLocalizationService.class));
+		renderer.init();
+
+		final SWTGridDescription grid = renderer
+			.getGridDescription(GridDescriptionFactory.INSTANCE.createEmptyGridDescription());
+		final Control render = renderer.render(grid.getGrid().get(0), shell);
+		renderer.finalizeRendering(shell);
+
+		assertThat(render, instanceOf(Composite.class));
+		final Composite border = getChild(getChild(render, Composite.class, 0), Composite.class, 1);
+		final SashForm sashForm = getChild(border, SashForm.class, 0);
+		assumeThat("SashForm malformed", sashForm.getChildren().length, is(2));
+		final Composite detailComposite = getChild(sashForm, Composite.class, 1);
+		final GridTableViewer tableViewer = GridTestsUtil.getTableViewerFromRenderer(renderer);
+
+		// Select an attribute
+		tableViewer.setSelection(new StructuredSelection(a1));
+
+		final Text nameText = getControl(detailComposite, Text.class, "Name");
+		assertThat(nameText.getText(), is("a1"));
+
+		// Select another attribute
+		tableViewer.setSelection(new StructuredSelection(a2));
+
+		assertThat("Details not reused", getControl(detailComposite, Text.class, "Name"), sameInstance(nameText));
+		assertThat(nameText.getText(), is("a2"));
+	}
+
+	//
+	// Test framework
+	//
+
 	private ViewModelContext mockViewModelContext(final VView detailView, final EObject domainObject) {
+		final ReportService reportService = mock(ReportService.class);
+
+		final EMFFormsLocalizationService l10nService = mock(EMFFormsLocalizationService.class);
+		final Answer<String> l10nAnwer = invocation -> String.format("String for key '%s'",
+			invocation.getArguments()[1]);
+		when(l10nService.getString(any(Bundle.class), any(String.class))).then(l10nAnwer);
+		when(l10nService.getString(any(Class.class), any(String.class))).then(l10nAnwer);
+
 		final ViewModelContext context = mock(ViewModelContext.class);
+		when(context.getService(ReportService.class)).thenReturn(reportService);
+		when(context.getService(EMFFormsLocalizationService.class)).thenReturn(l10nService);
+
 		final ViewModelContext childContext = mock(ViewModelContext.class);
 		when(childContext.getDomainModel()).thenReturn(domainObject);
 		when(childContext.getViewModel()).thenReturn(detailView);
+		when(childContext.getService(ReportService.class)).thenReturn(reportService);
+		when(childContext.getService(EMFFormsLocalizationService.class)).thenReturn(l10nService);
 
 		when(context.getChildContext(any(EObject.class), any(VElement.class), any(VView.class)))
 			.thenReturn(childContext);
+
 		return context;
 	}
 
@@ -387,6 +479,39 @@
 		return type.cast(child);
 	}
 
+	private <T> T getControl(Control root, Class<T> type, String afterLabel) {
+		final T result = getControlHelper(root, type, afterLabel, new boolean[1]);
+		assertThat(String.format("No %s found after label '%s'", type.getSimpleName(), afterLabel),
+			result, notNullValue());
+		return result;
+	}
+
+	private <T> T getControlHelper(Control control, Class<T> type, String afterLabel, boolean[] foundLabel) {
+		if (type.isInstance(control) && foundLabel[0]) {
+			return type.cast(control);
+		}
+		if (control instanceof Label) {
+			final Label label = (Label) control;
+			if (foundLabel[0]) {
+				// Next label? Give up search
+				return null;
+			}
+			if (label.getText().equals(afterLabel)) {
+				foundLabel[0] = true;
+			}
+		}
+		if (control instanceof Composite) {
+			// Descend
+			for (final Control next : ((Composite) control).getChildren()) {
+				final T result = getControlHelper(next, type, afterLabel, foundLabel);
+				if (result != null) {
+					return result;
+				}
+			}
+		}
+		return null;
+	}
+
 	private static class PrintStreamWrapper extends PrintStream {
 
 		private final PrintStream printStream;
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a5fddb0..0352d98 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
@@ -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,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.200.v20190216-1545@default:default,org.eclipse.core.databinding.observable*1.6.400.v20190218-2049@default:default,org.eclipse.core.databinding.property*1.6.400.v20190215-1957@default:default,org.eclipse.core.expressions@default:default,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.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.cocoa.macosx.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@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.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"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.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.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@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@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@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.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,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.navigator@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.emfstore.core@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.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.test@default:false,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.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.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.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.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 59e2735..8d58dcf 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,50 +2,56 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.internal.table.swt.cell;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.table.swt;version="1.21.0",
- org.eclipse.emf.ecp.view.table.ui.swt.test;version="1.21.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test"
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.table.swt.cell;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.swt;version="1.22.0",
+ org.eclipse.emf.ecp.view.spi.table.swt.action;version="1.22.0",
+ org.eclipse.emf.ecp.view.table.ui.swt.test;version="1.22.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test"
+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.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.columnservice;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.columnservice;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.segments.multi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.service;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.21.0,1.22.0)"
+Import-Package: org.eclipse.emf.ecp.view.test.common.spi;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.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 d25d6d7..e10e083 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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/internal/table/swt/TableDetailRevealProvider_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/internal/table/swt/TableDetailRevealProvider_PTest.java
new file mode 100644
index 0000000..07e7f91
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/internal/table/swt/TableDetailRevealProvider_PTest.java
@@ -0,0 +1,274 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.eSetContainer;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyVararg;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+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;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+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.ViewModelService;
+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.table.model.DetailEditing;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+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.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+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.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests covering the {@link TableDetailRevealProvider} class.
+ */
+@RunWith(EMFMockingRunner.class)
+public class TableDetailRevealProvider_PTest {
+
+	@ViewModel
+	private final VView viewModel = VViewFactory.eINSTANCE.createView();
+
+	@EMock
+	@DomainModel
+	private EPackage rootObject;
+
+	@EMock
+	private EClass class1;
+
+	@EMock
+	private EClass class2;
+
+	@EMock
+	private EReference obj1;
+
+	@EMock
+	private EAttribute obj2;
+
+	private VTableControl masterTable;
+
+	private final VView detailView = VViewFactory.eINSTANCE.createView();
+
+	private VTableControl detailTable;
+
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<ViewModelContext> fixture = EMFFormsRevealServiceFixture.create(
+		ViewModelContext.class, this);
+
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public TableDetailRevealProvider_PTest() {
+		super();
+	}
+
+	@Test
+	public void revealInTableInTableDetail() {
+		final Runnable masterReveal = mock(Runnable.class);
+		final Runnable detailReveal = mock(Runnable.class);
+
+		fixture.addRevealProvider(new ViewRevealer(viewModel, masterReveal));
+		fixture.addRevealProvider(new ViewRevealer(detailView, detailReveal));
+
+		render();
+
+		fixture.reveal(obj2);
+
+		SWTTestUtil.waitForUIThread();
+
+		// We revealed the root view and the detail view
+		verify(masterReveal).run();
+		verify(detailReveal).run();
+
+		// The second table is the detail
+		final Table table = SWTTestUtil.findControl(shell, 1, Table.class);
+		assertThat("Table selection incorrect", table.getSelectionIndex(), is(1));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createViewModel() {
+		final TableControlHandle masterHandle = TableTestUtil
+			.createInitializedTableWithoutTableColumns(EcorePackage.Literals.EPACKAGE__ECLASSIFIERS);
+
+		masterHandle.addFirstTableColumn(TableTestUtil.createTableColumn(EcorePackage.Literals.ENAMED_ELEMENT__NAME));
+		masterHandle.addSecondTableColumn(
+			TableTestUtil.createTableColumn(EcorePackage.Literals.ECLASSIFIER__INSTANCE_CLASS_NAME));
+
+		masterTable = masterHandle.getTableControl();
+		masterTable.setDetailEditing(DetailEditing.WITH_PANEL);
+		viewModel.getChildren().add(masterTable);
+
+		final TableControlHandle detailHandle = TableTestUtil
+			.createInitializedTableWithoutTableColumns(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+
+		detailHandle.addFirstTableColumn(TableTestUtil.createTableColumn(EcorePackage.Literals.ENAMED_ELEMENT__NAME));
+		detailHandle.addSecondTableColumn(TableTestUtil.createTableColumn(EcorePackage.Literals.ETYPED_ELEMENT__MANY));
+
+		detailTable = detailHandle.getTableControl();
+		detailView.getChildren().add(detailTable);
+
+		masterTable.setDetailView(detailView);
+	}
+
+	@Before
+	public void createDomainModel() {
+		final EList<EClassifier> classifiers = ECollections.asEList(class1, class2);
+		when(rootObject.getEClassifiers()).thenReturn(classifiers);
+		when(rootObject.eGet(EcorePackage.Literals.EPACKAGE__ECLASSIFIERS)).thenReturn(classifiers);
+
+		when(class1.getName()).thenReturn("Class1");
+		eSetContainer(class1, rootObject);
+		when(class2.getName()).thenReturn("Class2");
+		eSetContainer(class2, rootObject);
+		final EList<EStructuralFeature> features = ECollections.asEList(obj1, obj2);
+		when(class2.getEStructuralFeatures()).thenReturn(features);
+		when(class2.eGet(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES)).thenReturn(features);
+		when(obj1.getName()).thenReturn("ref1");
+		eSetContainer(obj1, class2);
+		when(obj2.getName()).thenReturn("att1");
+		eSetContainer(obj2, class2);
+
+		// These are needed by the data binding service
+		EStructuralFeature.Setting setting = mock(EStructuralFeature.Setting.class);
+		when(setting.getEObject()).thenReturn(rootObject);
+		when(setting.getEStructuralFeature()).thenReturn(EcorePackage.Literals.EPACKAGE__ECLASSIFIERS);
+		when(setting.get(anyBoolean())).thenReturn(classifiers);
+		when(((InternalEObject) rootObject).eSetting(EcorePackage.Literals.EPACKAGE__ECLASSIFIERS))
+			.thenReturn(setting);
+		setting = mock(EStructuralFeature.Setting.class);
+		when(setting.getEObject()).thenReturn(class1);
+		when(setting.getEStructuralFeature()).thenReturn(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		when(setting.get(anyBoolean())).thenReturn(ECollections.emptyEList());
+		when(((InternalEObject) class1).eSetting(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES))
+			.thenReturn(setting);
+		setting = mock(EStructuralFeature.Setting.class);
+		when(setting.getEObject()).thenReturn(class2);
+		when(setting.getEStructuralFeature()).thenReturn(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		when(setting.get(anyBoolean())).thenReturn(features);
+		when(((InternalEObject) class2).eSetting(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES))
+			.thenReturn(setting);
+	}
+
+	@Before
+	public void mockChildContexts() {
+		when(fixture.getViewContext().getChildContext(any(), any(), any(), (ViewModelService[]) anyVararg()))
+			.then(invocation -> {
+				final ViewModelContext result = fixture.createChildContext((VElement) invocation.getArguments()[1],
+					"child",
+					(VView) invocation.getArguments()[2],
+					(EObject) invocation.getArguments()[0]);
+				when(result.getParentContext()).thenReturn((ViewModelContext) invocation.getMock());
+				return result;
+			});
+	}
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	void render() {
+		SWTViewTestHelper.render(fixture.getViewContext(), shell);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * A high-bidding reveal provider to make sure that we drill into the view
+	 * to find the table, regardless of other possible contributions in the
+	 * current configuration.
+	 */
+	private final class ViewRevealer implements EMFFormsRevealProvider {
+
+		private final VView view;
+		private final Runnable reveal;
+
+		ViewRevealer(VView view, Runnable reveal) {
+			super();
+
+			this.view = view;
+			this.reveal = reveal;
+		}
+
+		@Bid
+		public Double bid(VView view, EObject model) {
+			return view == this.view && model == obj2 ? Double.MAX_VALUE : null;
+		}
+
+		@Create
+		public RevealStep create(VView view, EObject model, RevealHelper helper) {
+			return view == this.view && model == obj2
+				? helper.drillDown(this)
+				: RevealStep.fail();
+		}
+
+		@Reveal
+		private RevealStep drillDown(VView view, EObject model) {
+			return RevealStep.reveal(view, model, reveal);
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/internal/table/swt/TableRevealProvider_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/internal/table/swt/TableRevealProvider_PTest.java
new file mode 100644
index 0000000..d250528
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/internal/table/swt/TableRevealProvider_PTest.java
@@ -0,0 +1,201 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+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.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.table.model.VTableControl;
+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.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+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.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests covering the {@link TableRevealProvider} class.
+ */
+@RunWith(EMFMockingRunner.class)
+public class TableRevealProvider_PTest {
+
+	@ViewModel
+	private final VView viewModel = VViewFactory.eINSTANCE.createView();
+
+	@EMock
+	@DomainModel
+	private EClass rootObject;
+
+	@EMock
+	private EReference obj1;
+
+	@EMock
+	private EAttribute obj2;
+
+	private VTableControl table;
+
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<ViewModelContext> fixture = EMFFormsRevealServiceFixture.create(
+		ViewModelContext.class, this);
+
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public TableRevealProvider_PTest() {
+		super();
+	}
+
+	@Test
+	public void revealInTable() {
+		final Runnable reveal = mock(Runnable.class);
+
+		fixture.addRevealProvider(new ViewRevealer(reveal));
+
+		render();
+
+		fixture.reveal(obj2);
+
+		SWTTestUtil.waitForUIThread();
+
+		verify(reveal).run();
+
+		final Table table = SWTTestUtil.findControl(shell, 0, Table.class);
+		assertThat("Table selection incorrect", table.getSelectionIndex(), is(1));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createViewModel() {
+		final TableControlHandle handle = TableTestUtil
+			.createInitializedTableWithoutTableColumns(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+
+		handle.addFirstTableColumn(TableTestUtil.createTableColumn(EcorePackage.Literals.ENAMED_ELEMENT__NAME));
+		handle.addSecondTableColumn(TableTestUtil.createTableColumn(EcorePackage.Literals.ETYPED_ELEMENT__ETYPE));
+
+		table = handle.getTableControl();
+		viewModel.getChildren().add(table);
+	}
+
+	@Before
+	public void createDomainModel() {
+		final EList<EStructuralFeature> features = ECollections.asEList(obj1, obj2);
+		when(rootObject.getEStructuralFeatures()).thenReturn(features);
+		when(rootObject.eGet(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES)).thenReturn(features);
+		when(obj1.getName()).thenReturn("ref1");
+		when(obj2.getName()).thenReturn("att1");
+
+		// This is needed by the data binding service
+		final EStructuralFeature.Setting setting = mock(EStructuralFeature.Setting.class);
+		when(setting.getEObject()).thenReturn(rootObject);
+		when(setting.getEStructuralFeature()).thenReturn(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		when(setting.get(anyBoolean())).thenReturn(features);
+		when(((InternalEObject) rootObject).eSetting(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES))
+			.thenReturn(setting);
+	}
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	void render() {
+		SWTViewTestHelper.render(fixture.getViewContext(), shell);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * A high-bidding reveal provider to make sure that we drill into the view
+	 * to find the table, regardless of other possible contributions in the
+	 * current configuration.
+	 */
+	private final class ViewRevealer implements EMFFormsRevealProvider {
+
+		private final Runnable reveal;
+
+		ViewRevealer(Runnable reveal) {
+			super();
+
+			this.reveal = reveal;
+		}
+
+		@Bid
+		public Double bid(VView view, EObject model) {
+			return view == viewModel && model == obj2 ? Double.MAX_VALUE : null;
+		}
+
+		@Create
+		public RevealStep create(VView view, EObject model, RevealHelper helper) {
+			return view == viewModel && model == obj2
+				? helper.drillDown(this)
+				: RevealStep.fail();
+		}
+
+		@Reveal
+		private RevealStep drillDown(VView view, EObject model) {
+			return RevealStep.reveal(view, model, reveal);
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/ItemProviderEnumCellEditor_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/ItemProviderEnumCellEditor_PTest.java
new file mode 100644
index 0000000..c2fc3e2
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/ItemProviderEnumCellEditor_PTest.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * 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.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ * Unit tests for {@link ItemProviderEnumCellEditor}. Run as plugin test to be able to create a new Shell.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class ItemProviderEnumCellEditor_PTest {
+
+	private static final String TEST_ENUM = "TestEnum";
+	private static final String TEST_LITERAL = "test literal";
+	private static final String TEST_NAME = "testName";
+	private static final String KEY_TEMPLATE = "_UI_" + TEST_ENUM + "_%s_literal";
+
+	private ItemProviderEnumCellEditor cellEditor;
+	private Shell shell;
+	private BundleResolver bundleResolver;
+	private EMFFormsLocalizationService localization;
+	private EStructuralFeature feature;
+	private ViewModelContext viewContext;
+	private ReportService reportService;
+
+	private EEnumLiteral testLiteral;
+
+	@Before
+	public void setUp() {
+		shell = new Shell(Display.getDefault());
+		bundleResolver = mock(BundleResolver.class);
+		localization = mock(EMFFormsLocalizationService.class);
+		viewContext = mock(ViewModelContext.class);
+		reportService = mock(ReportService.class);
+		when(viewContext.getService(ReportService.class)).thenReturn(reportService);
+		cellEditor = new ItemProviderEnumCellEditor(shell, SWT.NONE, bundleResolver, localization);
+
+		final EEnum testEnum = EcoreFactory.eINSTANCE.createEEnum();
+		testEnum.setName(TEST_ENUM);
+		testLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
+		testLiteral.setName(TEST_NAME);
+		testLiteral.setLiteral(TEST_LITERAL);
+		testEnum.getELiterals().add(testLiteral);
+
+		feature = EcoreFactory.eINSTANCE.createEAttribute();
+		feature.setName("TestAttribute");
+		feature.setEType(testEnum);
+
+		final EClass containerClass = EcoreFactory.eINSTANCE.createEClass();
+		containerClass.setName("ContainerClass");
+		containerClass.getEStructuralFeatures().add(feature);
+	}
+
+	@After
+	public void disposeShell() {
+		if (shell != null && !shell.isDisposed()) {
+			shell.dispose();
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test
+	public void getFormatedString_noBundle() throws NoBundleFoundException {
+		when(bundleResolver.getEditBundle(any())).thenThrow(NoBundleFoundException.class);
+		cellEditor.instantiate(feature, viewContext);
+		final String result = cellEditor.getFormatedString(testLiteral);
+
+		verify(localization, never()).getString((Bundle) any(), any());
+		verify(reportService, times(1)).report(any());
+		// original literal text
+		assertEquals(TEST_LITERAL, result);
+	}
+
+	@Test
+	public void getFormatedString_localized() throws NoBundleFoundException {
+		final String key = String.format(KEY_TEMPLATE, TEST_NAME);
+		final String localized = "some localization";
+
+		final Bundle bundle = mock(Bundle.class);
+		when(bundleResolver.getEditBundle(feature.getEType())).thenReturn(bundle);
+		when(localization.getString(bundle, key)).thenReturn(localized);
+
+		cellEditor.instantiate(feature, viewContext);
+		final String result = cellEditor.getFormatedString(testLiteral);
+
+		verify(reportService, never()).report(any());
+		assertEquals(localized, result);
+	}
+
+	@Test
+	public void getFormatedString_noLocalizedString() throws NoBundleFoundException {
+		final String key = String.format(KEY_TEMPLATE, TEST_NAME);
+
+		final Bundle bundle = mock(Bundle.class);
+		when(bundleResolver.getEditBundle(feature.getEType())).thenReturn(bundle);
+
+		cellEditor.instantiate(feature, viewContext);
+		final String result = cellEditor.getFormatedString(testLiteral);
+
+		// once during init, once during getFormatedString
+		verify(localization, times(2)).getString(bundle, key);
+		verify(reportService, never()).report(any());
+		assertEquals(TEST_LITERAL, result);
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/LocalizedEnumeratorComparator_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/LocalizedEnumeratorComparator_PTest.java
new file mode 100644
index 0000000..81b86b6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/LocalizedEnumeratorComparator_PTest.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt;
+
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.notNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ * Unit tests for {@link LocalizedEnumeratorComparator}. Run as plugin test because otherwise the hamcrest matchers do
+ * not work due to a security exception.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class LocalizedEnumeratorComparator_PTest {
+
+	private static final String TEST_ENUM = "TestEnum";
+	private static final String TEST_LITERAL = "test literal";
+	private static final String TEST_NAME = "testName";
+	private static final String KEY_TEMPLATE = "_UI_" + TEST_ENUM + "_%s_literal";
+	private static final String TEST_NAME_2 = "testZName";
+	private static final String TEST_LITERAL_2 = "test z literal";
+
+	private BundleResolver bundleResolver;
+	private ReportService reportService;
+	private EMFFormsLocalizationService localization;
+	private LocalizedEnumeratorComparator comparator;
+	private EEnumLiteral testLiteral;
+	private EAttribute feature;
+	private EEnumLiteral testLiteral2;
+
+	@Before
+	public void setUp() {
+		bundleResolver = mock(BundleResolver.class);
+		reportService = mock(ReportService.class);
+		localization = mock(EMFFormsLocalizationService.class);
+		comparator = new LocalizedEnumeratorComparator(localization, bundleResolver, reportService);
+
+		final EEnum testEnum = EcoreFactory.eINSTANCE.createEEnum();
+		testEnum.setName(TEST_ENUM);
+		testLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
+		testLiteral.setName(TEST_NAME);
+		testLiteral.setLiteral(TEST_LITERAL);
+		testEnum.getELiterals().add(testLiteral);
+
+		testLiteral2 = EcoreFactory.eINSTANCE.createEEnumLiteral();
+		testLiteral2.setName(TEST_NAME_2);
+		testLiteral2.setLiteral(TEST_LITERAL_2);
+		testEnum.getELiterals().add(testLiteral2);
+
+		feature = EcoreFactory.eINSTANCE.createEAttribute();
+		feature.setName("TestAttribute");
+		feature.setEType(testEnum);
+
+		final EClass containerClass = EcoreFactory.eINSTANCE.createEClass();
+		containerClass.setName("ContainerClass");
+		containerClass.getEStructuralFeatures().add(feature);
+	}
+
+	@Test
+	public void compare_bothNull() {
+		final int result = comparator.compare(feature, null, null);
+		verify(reportService, never()).report(any());
+		assertEquals(0, result);
+	}
+
+	@Test
+	public void compare_rightNull() {
+		final int result = comparator.compare(feature, testLiteral, null);
+		verify(reportService, never()).report(any());
+		assertThat(result, lessThanOrEqualTo(-1));
+	}
+
+	@Test
+	public void compare_leftNull() {
+		final int result = comparator.compare(feature, null, testLiteral);
+		verify(reportService, never()).report(any());
+		assertThat(result, greaterThanOrEqualTo(1));
+	}
+
+	@Test
+	public void compare() throws NoBundleFoundException {
+		final Bundle bundle = mock(Bundle.class);
+		when(bundleResolver.getEditBundle(any())).thenReturn(bundle);
+		when(localization.getString(bundle, String.format(KEY_TEMPLATE, TEST_NAME))).thenReturn("b");
+		when(localization.getString(bundle, String.format(KEY_TEMPLATE, TEST_NAME_2))).thenReturn("a");
+
+		final int result = comparator.compare(feature, testLiteral, testLiteral2);
+
+		// With the non-localized literals, the result would be -1
+		assertThat(result, greaterThanOrEqualTo(1));
+		verify(reportService, never()).report(any());
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test
+	public void compare_noBundle() throws NoBundleFoundException {
+		when(bundleResolver.getEditBundle(any())).thenThrow(NoBundleFoundException.class);
+
+		final int result = comparator.compare(feature, testLiteral, testLiteral2);
+
+		assertThat(result, lessThanOrEqualTo(-1));
+		verify(localization, never()).getString((Bundle) any(), any());
+		verify(reportService, times(1)).report(notNull(AbstractReport.class));
+	}
+}
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 772801e..4626cc1 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
@@ -10,20 +10,26 @@
  *
  * Contributors:
  * Johannes Faltermeier
- * Christian W. Damus - bugs 527740, 544116, 545686
+ * Christian W. Damus - bugs 527740, 544116, 545686, 527686, 547787, 548592
  *
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
-import static org.hamcrest.MatcherAssert.assertThat;
+import static java.util.Arrays.asList;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.Matchers.lessThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Mockito.mock;
@@ -35,6 +41,7 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.LinkedHashMap;
@@ -73,6 +80,7 @@
 import org.eclipse.emf.ecp.view.internal.context.ViewModelContextImpl;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelServiceProvider;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
@@ -87,7 +95,9 @@
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 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.masterdetail.DetailViewCache;
 import org.eclipse.emf.ecp.view.spi.table.model.DetailEditing;
+import org.eclipse.emf.ecp.view.spi.table.model.VEnablementConfiguration;
 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;
@@ -132,6 +142,7 @@
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -363,6 +374,33 @@
 	}
 
 	@Test
+	public void testTableCustomColumnHeading() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
+
+		final TableControlHandle handle = createTableWithTwoTableColumns();
+
+		// The custom label is specified by the Enablement Configuration
+		final VEnablementConfiguration config = VTableFactory.eINSTANCE.createEnablementConfiguration();
+		config.setColumnDomainReference(handle.getTableColumn2());
+		final String customHeading = "Custom Heading";
+		config.setName(customHeading);
+		config.setLabel(customHeading); // Normally, the view localization service would supply this
+		handle.getTableControl().getColumnConfigurations().add(config);
+
+		final Control render = SWTViewTestHelper.render(handle.getTableControl(), domainElement, shell);
+		assumeThat("Expected a composite", render, instanceOf(Composite.class));
+
+		final Control control = getTable(render);
+		assumeThat("Expected a Table", control, instanceOf(Table.class));
+		final Table table = (Table) control;
+		assumeThat("Expected three columns (including validation status)",
+			table.getColumnCount(), is(1 + 2));
+
+		final TableColumn column = table.getColumn(2);
+		assertThat("Wrong column heading", column.getText(), is(customHeading));
+	}
+
+	@Test
 	public void testTableWithTwoColumnsWithoutViewServices() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
@@ -467,27 +505,38 @@
 		final TableViewer tableViewer = getTableViewerFromRenderer(tableRenderer);
 
 		// no initial selection
-		assertEquals(0, parentForECPView.getChildren().length);
+		assertThat("Composite for no selection not present",
+			asList(parentForECPView.getChildren()), hasItem(instanceOf(Composite.class)));
+		final Composite stackComposite = (Composite) parentForECPView.getChildren()[0];
+		final StackLayout stack = (StackLayout) stackComposite.getLayout();
+		Composite labelComposite = (Composite) stack.topControl;
+		assertThat("Composite for label not present", labelComposite, notNullValue());
+		assertThat("Label for no selection not present",
+			asList(labelComposite.getChildren()), hasItem(instanceOf(Label.class)));
 
 		// single selection
 		tableViewer.setSelection(new StructuredSelection(table.getItem(0).getData()));
-		assertEquals(1, parentForECPView.getChildren().length);
-		final Composite viewComposite = (Composite) parentForECPView.getChildren()[0];
-		final Composite detailComposite = (Composite) viewComposite.getChildren()[0];
+		Composite detailComposite = (Composite) stack.topControl;
 		assertEquals(6, detailComposite.getChildren().length);
 
-		// multi selection
+		// multi selection (it's like no selection)
 		tableViewer.setSelection(new StructuredSelection(new Object[] { table.getItem(0).getData(),
 			table.getItem(1).getData() }));
-		assertEquals(0, parentForECPView.getChildren().length);
+		detailComposite = (Composite) stack.topControl;
+		assertThat("Label for multi selection not present",
+			asList(labelComposite.getChildren()), hasItem(instanceOf(Label.class)));
 
 		// select again
 		tableViewer.setSelection(new StructuredSelection(table.getItem(0).getData()));
-		assertEquals(1, parentForECPView.getChildren().length);
+		detailComposite = (Composite) stack.topControl;
+		assertEquals(6, detailComposite.getChildren().length);
 
 		// no selection
 		tableViewer.setSelection(new StructuredSelection());
-		assertEquals(0, parentForECPView.getChildren().length);
+		labelComposite = (Composite) stack.topControl;
+		assertThat("Composite for label not present", labelComposite, notNullValue());
+		assertThat("Label for no selection not present",
+			asList(labelComposite.getChildren()), hasItem(instanceOf(Label.class)));
 	}
 
 	@Test
@@ -1149,6 +1198,113 @@
 		registration.unregister();
 	}
 
+	/**
+	 * Verify the reuse of detail renderings with caching.
+	 */
+	@Test
+	public void testPanelTableDetailReused() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
+
+		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
+		((EClass) domainElement).getESuperTypes().add(eClass);
+		final TableControlHandle handle = createTableWithTwoTableColumns();
+		handle.getTableControl().setDetailEditing(DetailEditing.WITH_PANEL);
+		handle.getTableControl().setDetailView(createDetailView());
+
+		final ViewModelContext context = new ViewModelContextWithoutServices(handle.getTableControl());
+		context.putContextValue(DetailViewCache.DETAIL_VIEW_CACHE_SIZE, 5);
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(), context);
+		tableRenderer.getGridDescription(new SWTGridDescription());
+		final Control render = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
+		final Control control = Composite.class.cast(render).getChildren()[0];
+		assertThat("No control was rendered", control, notNullValue());
+
+		final Composite controlComposite = (Composite) ((Composite) control).getChildren()[1];
+		final Composite tableComposite = (Composite) controlComposite.getChildren()[0];
+		final Table table = (Table) tableComposite.getChildren()[0];
+		final ScrolledComposite scrolledComposite = (ScrolledComposite) controlComposite.getChildren()[1];
+		final Composite parentForECPView = (Composite) scrolledComposite.getChildren()[0];
+		assumeThat("Not enough rows in the table", table.getItemCount(), greaterThanOrEqualTo(2));
+		final TableViewer tableViewer = getTableViewerFromRenderer(tableRenderer);
+
+		// Select an EClass
+		tableViewer.setSelection(new StructuredSelection(table.getItem(0).getData()));
+		assertThat("Composite for selection not present",
+			asList(parentForECPView.getChildren()), hasItem(instanceOf(Composite.class)));
+		final Composite stackComposite = (Composite) parentForECPView.getChildren()[0];
+		final StackLayout stack = (StackLayout) stackComposite.getLayout();
+		Composite detailComposite = (Composite) stack.topControl;
+		assertThat("Composite for details not present", detailComposite, notNullValue());
+		final Control[] detailChildren = detailComposite.getChildren();
+		assertThat("Insufficient number of detail controls", detailChildren.length, greaterThanOrEqualTo(6));
+
+		// Select another EClass
+		tableViewer.setSelection(new StructuredSelection(table.getItem(1).getData()));
+		assertThat(parentForECPView.getChildren().length, is(1));
+		detailComposite = (Composite) stack.topControl;
+		assertThat("Detail controls not reused", detailComposite.getChildren(), is(detailChildren));
+	}
+
+	/**
+	 * Verify the replacement of the parent context root domain model object while a detail
+	 * is showing, in which the detail must be put away because the table selection is lost.
+	 */
+	@Test
+	public void testRootDomainModelChangedWhilePanelTableDetail()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
+
+		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
+		((EClass) domainElement).getESuperTypes().add(eClass);
+		final TableControlHandle handle = createTableWithTwoTableColumns();
+		handle.getTableControl().setDetailEditing(DetailEditing.WITH_PANEL);
+		handle.getTableControl().setDetailView(createDetailView());
+
+		final ViewModelContext context = ViewModelContextFactory.INSTANCE
+			.createViewModelContext(handle.getView(), domainElement);
+		context.putContextValue(DetailViewCache.DETAIL_VIEW_CACHE_SIZE, 5);
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(), context);
+		tableRenderer.getGridDescription(new SWTGridDescription());
+		final Control render = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
+		final Control control = Composite.class.cast(render).getChildren()[0];
+		assumeThat("No control was rendered", control, notNullValue());
+
+		final Composite controlComposite = (Composite) ((Composite) control).getChildren()[1];
+		final Composite tableComposite = (Composite) controlComposite.getChildren()[0];
+		final Table table = (Table) tableComposite.getChildren()[0];
+		final ScrolledComposite scrolledComposite = (ScrolledComposite) controlComposite.getChildren()[1];
+		final Composite parentForECPView = (Composite) scrolledComposite.getChildren()[0];
+		assumeThat("Not enough rows in the table", table.getItemCount(), greaterThanOrEqualTo(2));
+		final TableViewer tableViewer = getTableViewerFromRenderer(tableRenderer);
+
+		// Select an EClass
+		tableViewer.setSelection(new StructuredSelection(table.getItem(0).getData()));
+		assumeThat("Composite for selection not present",
+			asList(parentForECPView.getChildren()), hasItem(instanceOf(Composite.class)));
+		final Composite stackComposite = (Composite) parentForECPView.getChildren()[0];
+		final StackLayout stack = (StackLayout) stackComposite.getLayout();
+		Composite detailComposite = (Composite) stack.topControl;
+		assumeThat("Composite for details not present", detailComposite, notNullValue());
+		Control[] detailChildren = detailComposite.getChildren();
+		assumeThat("Insufficient number of detail controls", detailChildren.length, greaterThanOrEqualTo(6));
+
+		// Now, replace the parent context domain model element
+		context.changeDomainModel(eClass);
+
+		// Assert that the table is now empty and the detail is the "No selection" label
+		assertThat("Table should be empty", table.getItemCount(), is(0));
+		detailComposite = (Composite) stack.topControl;
+		detailChildren = detailComposite.getChildren();
+		assumeThat("Wrong number of detail controls", detailChildren.length, is(1));
+		assertThat("Detail is not a label", detailChildren[0], instanceOf(Label.class));
+	}
+
+	//
+	// Test framework
+	//
+
 	@SafeVarargs
 	static <T> Set<T> set(T... elements) {
 		return new HashSet<>(Arrays.asList(elements));
@@ -1244,13 +1400,6 @@
 		}
 	}
 
-	private static EClass createEClass(String name, String instanceClassName) {
-		final EClass clazz = EcoreFactory.eINSTANCE.createEClass();
-		clazz.setName(name);
-		clazz.setInstanceClassName(instanceClassName);
-		return clazz;
-	}
-
 	private static EAttribute createEAttribute(String name, EClassifier classifier, int lowerBound, int upperBound) {
 		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
 		attribute.setName(name);
@@ -1335,11 +1484,13 @@
 
 		private final VElement view;
 		private final EMFFormsContextProvider contextProvider;
-		private final Map<Class<?>, Object> services = new LinkedHashMap<Class<?>, Object>();
+		private final Map<Class<?>, Object> services = new LinkedHashMap<>();
+		private final Map<String, Object> contextValues = new HashMap<>();
 
 		ViewModelContextWithoutServices(VElement view) {
 			this.view = view;
 			contextProvider = new org.eclipse.emfforms.internal.swt.core.di.EMFFormsContextProviderImpl();
+			contextProvider.instantiate(this);
 		}
 
 		/**
@@ -1474,25 +1625,18 @@
 			return null;
 		}
 
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getContextValue(java.lang.String)
-		 */
 		@Override
 		public Object getContextValue(String key) {
-			return null;
+			Object result = contextValues.get(key);
+			if (result == null && getParentContext() != null) {
+				result = getParentContext().getContextValue(key);
+			}
+			return result;
 		}
 
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#putContextValue(java.lang.String,
-		 *      java.lang.Object)
-		 */
 		@Override
 		public void putContextValue(String key, Object value) {
-
+			contextValues.put(key, value);
 		}
 
 		/**
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 8f4637f..7ddae8f 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
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bug 530314
+ * Christian W. Damus - bugs 530314, 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
@@ -49,6 +49,7 @@
 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.localization.EMFFormsLocalizationService;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
@@ -61,6 +62,8 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.stubbing.Answer;
+import org.osgi.framework.Bundle;
 
 /**
  * Unit tests for the {@link TableControlDetailPanelRenderer}.
@@ -96,6 +99,7 @@
 			mock(EMFFormsEditSupport.class));
 		final EAttribute eAttribute = EcoreFactory.eINSTANCE.createEAttribute();
 		final EReference eReference = EcoreFactory.eINSTANCE.createEReference();
+		renderer.createDetailManager(shell);
 		final VView viewAttribute1 = renderer.getView(eAttribute);
 		final VView viewReference = renderer.getView(eReference);
 		assertFalse(EcoreUtil.equals(viewAttribute1, viewReference));
@@ -311,13 +315,27 @@
 	}
 
 	private ViewModelContext mockViewModelContext(final VView detailView, final EObject domainObject) {
+		final ReportService reportService = mock(ReportService.class);
+
+		final EMFFormsLocalizationService l10nService = mock(EMFFormsLocalizationService.class);
+		final Answer<String> l10nAnwer = invocation -> String.format("String for key '%s'",
+			invocation.getArguments()[1]);
+		when(l10nService.getString(any(Bundle.class), any(String.class))).then(l10nAnwer);
+		when(l10nService.getString(any(Class.class), any(String.class))).then(l10nAnwer);
+
 		final ViewModelContext context = mock(ViewModelContext.class);
+		when(context.getService(ReportService.class)).thenReturn(reportService);
+		when(context.getService(EMFFormsLocalizationService.class)).thenReturn(l10nService);
+
 		final ViewModelContext childContext = mock(ViewModelContext.class);
 		when(childContext.getDomainModel()).thenReturn(domainObject);
 		when(childContext.getViewModel()).thenReturn(detailView);
+		when(childContext.getService(ReportService.class)).thenReturn(reportService);
+		when(childContext.getService(EMFFormsLocalizationService.class)).thenReturn(l10nService);
 
 		when(context.getChildContext(any(EObject.class), any(VElement.class), any(VView.class)))
 			.thenReturn(childContext);
+
 		return context;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlRendererSort_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlRendererSort_PTest.java
new file mode 100644
index 0000000..177b04c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlRendererSort_PTest.java
@@ -0,0 +1,244 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * eugen - 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.Dictionary;
+import java.util.Hashtable;
+
+import javax.inject.Inject;
+
+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.ecp.view.spi.context.ViewModelContext;
+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.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.spi.util.swt.ImageRegistryService;
+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.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.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+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.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * @author eugen
+ *
+ */
+@RunWith(DatabindingClassRunner.class)
+public class TableControlRendererSort_PTest {
+
+	private static class TableControlSWTRendererSort extends TableControlSWTRenderer {
+
+		@Inject
+		// CHECKSTYLE.OFF: ParameterNumber
+		TableControlSWTRendererSort(VTableControl vElement, ViewModelContext viewContext,
+			ReportService reportService,
+			EMFFormsDatabindingEMF emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+			VTViewTemplateProvider vtViewTemplateProvider, ImageRegistryService imageRegistryService,
+			EMFFormsEditSupport emfFormsEditSupport) {
+			// CHECKSTYLE.ON: ParameterNumber
+			super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider,
+				vtViewTemplateProvider,
+				imageRegistryService, emfFormsEditSupport);
+		}
+
+		@Override
+		protected TableControlComparator createTableViewerComparator() {
+			// CHECKSTYLE.OFF: AnonInnerLength
+			return new TableControlComparator() {
+				private int propertyIndex;
+				private int direction;
+
+				@Override
+				public int getDirection() {
+					switch (direction) {
+					case 0:
+						return SWT.DOWN; // ascending
+					case 1:
+						return SWT.UP; // descending
+					default:
+						return SWT.DOWN;
+					}
+				}
+
+				@Override
+				public void setColumn(int column) {
+					if (column == propertyIndex) {
+						// Same column as last sort; toggle the direction
+						direction = (direction + 1) % 2;
+					} else {
+						// New column; do an ascending sort
+						propertyIndex = column;
+						direction = 0;
+					}
+					// columnFeatures starts at index 0 with the first regular column
+					setSortColumnFeature(getColumnFeature(propertyIndex));
+				}
+
+				@Override
+				public int compare(Viewer viewer, Object e1, Object e2) {
+					return TableControlSWTRendererSort.this.compare(viewer, e1, e2, direction + 1, propertyIndex);
+				}
+			};
+			// CHECKSTYLE.ON: AnonInnerLength
+		}
+
+		@Override
+		protected Control renderTableControl(SWTGridCell gridCell, Composite parent)
+			throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+			final Control result = super.renderTableControl(gridCell, parent);
+			getTableViewerComposite().setCompareColumn(1);
+			return result;
+		}
+
+	}
+
+	private static class TableControlSWTRendererSortService implements EMFFormsDIRendererService<VTableControl> {
+
+		@Override
+		public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+			if (!VTableControl.class.isInstance(vElement)) {
+				return NOT_APPLICABLE;
+			}
+			final VTableControl tableControl = (VTableControl) vElement;
+			final VTableDomainModelReference domainRef = (VTableDomainModelReference) tableControl
+				.getDomainModelReference();
+			if (domainRef.getDomainModelEFeature() == EcorePackage.eINSTANCE.getEClass_EStructuralFeatures()) {
+				return Double.MAX_VALUE;
+			}
+			return NOT_APPLICABLE;
+		}
+
+		@Override
+		public Class<? extends AbstractSWTRenderer<VTableControl>> getRendererClass() {
+			return TableControlSWTRendererSort.class;
+		}
+
+	}
+
+	private static ServiceRegistration<EMFFormsDIRendererService> serviceRegistration;
+	private Shell shell;
+
+	@BeforeClass
+	public static void beforeClass() {
+		final Bundle bundle = FrameworkUtil.getBundle(TableControlRendererSort_PTest.class);
+		final BundleContext bundleContext = bundle.getBundleContext();
+		final Dictionary<String, Object> properties = new Hashtable<String, Object>();
+		properties.put(Constants.SERVICE_RANKING, Double.MAX_VALUE);
+		serviceRegistration = bundleContext.registerService(EMFFormsDIRendererService.class,
+			new TableControlSWTRendererSortService(), properties);
+	}
+
+	@AfterClass
+	public static void afterClass() {
+		serviceRegistration.unregister();
+	}
+
+	@Before
+	public void init() {
+		shell = SWTViewTestHelper.createShell();
+	}
+
+	@After
+	public void after() {
+		if (shell != null && !shell.isDisposed()) {
+			shell.dispose();
+		}
+	}
+
+	@Test
+	public void tableCustomSort()
+		throws EMFFormsNoRendererException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		// table control
+		final VTableControl tableControl = TableTestUtil.createTableControl();
+		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EStructuralFeatures());
+		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
+
+		// render
+		shell.open();
+
+		final EClass domain = EcoreFactory.eINSTANCE.createEClass();
+		final EAttribute att1 = EcoreFactory.eINSTANCE.createEAttribute();
+		att1.setName("zzz");
+		final EAttribute att2 = EcoreFactory.eINSTANCE.createEAttribute();
+		att2.setName("aaa");
+		domain.getEStructuralFeatures().add(att1);
+		domain.getEStructuralFeatures().add(att2);
+
+		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);
+
+		SWTTestUtil.waitForUIThread();
+		assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+
+		final EAttribute first = (EAttribute) table.getItem(0).getData();
+		assertEquals("aaa", first.getName());
+
+		final EAttribute second = (EAttribute) table.getItem(1).getData();
+		assertEquals("zzz", second.getName());
+	}
+
+	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/action/DuplicateRowAction_Test.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/DuplicateRowAction_Test.java
new file mode 100644
index 0000000..d9fae74
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/DuplicateRowAction_Test.java
@@ -0,0 +1,698 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt.action;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+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.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for {@link DuplicateRowAction}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class DuplicateRowAction_Test {
+
+	private DuplicateRowAction action;
+	private EClass fooClass;
+	private EClass barClass;
+
+	@Before
+	public void before() {
+		final TableRendererViewerActionContext actionContext = mock(TableRendererViewerActionContext.class);
+		action = new DuplicateRowAction(actionContext);
+	}
+
+	private void createTestPackage() {
+		final EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		ePackage.setName("TestPackage");
+		ePackage.setNsPrefix("test");
+		ePackage.setNsURI("test");
+		fooClass = createEClass(ePackage, "Foo");
+		barClass = createEClass(ePackage, "Bar");
+
+		// create simple attributes
+		createAttribute(fooClass, "name");
+		createAttribute(barClass, "name");
+
+		// non containment references
+		createReference(fooClass, "refSingleNoOpp", barClass, false, false, false, false);
+		createReference(fooClass, "refManyNoOpp", barClass, false, true, false, false);
+
+		createReference(fooClass, "refSingleOppSingle", barClass, false, false, true, false);
+		createReference(fooClass, "refManyOppSingle", barClass, false, true, true, false);
+
+		createReference(fooClass, "refSingleOppMany", barClass, false, false, true, true);
+		createReference(fooClass, "refManyOppMany", barClass, false, true, true, true);
+
+		// containment
+		createReference(fooClass, "containmentSingleNoOpp", barClass, true, false, false, false);
+		createReference(fooClass, "containmentManyNoOpp", barClass, true, true, false, false);
+
+		createReference(fooClass, "containmentSingleOppSingle", barClass, true, false, true, false);
+		createReference(fooClass, "containmentManyOppSingle", barClass, true, true, true, false);
+	}
+
+	private EClass createEClass(EPackage ePackage, String name) {
+		final EClass clazz = EcoreFactory.eINSTANCE.createEClass();
+		clazz.setName(name);
+		ePackage.getEClassifiers().add(clazz);
+		return clazz;
+	}
+
+	private void createAttribute(EClass clazz, String name) {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		attribute.setName(name);
+		attribute.setEType(EcorePackage.eINSTANCE.getEString());
+		clazz.getEStructuralFeatures().add(attribute);
+	}
+
+	private void createReference(EClass clazz, String name, EClass refClass, boolean containment, boolean many,
+		boolean opposite, boolean oppositeMany) {
+		final EReference reference = EcoreFactory.eINSTANCE.createEReference();
+		reference.setName(name);
+		reference.setEType(refClass);
+		reference.setContainment(containment);
+		reference.setUpperBound(many ? -1 : 1);
+		if (opposite) {
+			final EReference oppReference = EcoreFactory.eINSTANCE.createEReference();
+			oppReference.setName(name + "-opposite");
+			oppReference.setEType(clazz);
+			oppReference.setUpperBound(oppositeMany ? -1 : 1);
+			refClass.getEStructuralFeatures().add(oppReference);
+			reference.setEOpposite(oppReference);
+			oppReference.setEOpposite(reference);
+		}
+		clazz.getEStructuralFeatures().add(reference);
+	}
+
+	@Test
+	public void test_refSingleNoOpp() {
+		createTestPackage();
+
+		final String refToTest = "refSingleNoOpp";
+
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bar1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bar2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, value1);
+		assertSame(bar2, value2);
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, orgValue1);
+		assertSame(bar2, orgValue2);
+	}
+
+	@Test
+	public void test_refManyNoOpp() {
+		createTestPackage();
+		final String refToTest = "refManyNoOpp";
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+		final List<EObject> bars1 = Arrays.asList(bar1, bar2);
+		final List<EObject> bars2 = Arrays.asList(bar1, bar2);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bars1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bars2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(value1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(value2).toArray());
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(orgValue1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(orgValue2).toArray());
+	}
+
+	@Test
+	public void test_refSingleOppSingle() {
+		createTestPackage();
+
+		final String refToTest = "refSingleOppSingle";
+
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bar1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bar2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertNull(value1);
+		assertNull(value2);
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, orgValue1);
+		assertSame(bar2, orgValue2);
+
+		final Object oppValue1 = bar1.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue2 = bar2.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertSame(foo1, oppValue1);
+		assertSame(foo2, oppValue2);
+
+	}
+
+	@Test
+	public void test_refManyOppSingle() {
+		createTestPackage();
+		final String refToTest = "refManyOppSingle";
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+		final List<EObject> bars1 = Arrays.asList(bar1);
+		final List<EObject> bars2 = Arrays.asList(bar2);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bars1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bars2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertEquals(0, asList(value1).size());
+		assertEquals(0, asList(value2).size());
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(orgValue1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(orgValue2).toArray());
+
+		final Object oppValue1 = bar1.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue2 = bar2.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertSame(foo1, oppValue1);
+		assertSame(foo2, oppValue2);
+	}
+
+	@Test
+	public void test_refSingleOppMany() {
+		createTestPackage();
+
+		final String refToTest = "refSingleOppMany";
+
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bar1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bar2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, value1);
+		assertSame(bar2, value2);
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, orgValue1);
+		assertSame(bar2, orgValue2);
+
+		// we add the copy also to the many ref of the opposite
+		final Object oppValue1 = bar1.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue2 = bar2.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertArrayEquals(new Object[] { foo1, foo1Copy }, asList(oppValue1).toArray());
+		assertArrayEquals(new Object[] { foo2, foo2Copy }, asList(oppValue2).toArray());
+	}
+
+	@Test
+	public void test_refManyOppMany() {
+		createTestPackage();
+		final String refToTest = "refManyOppMany";
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+		final List<EObject> bars1 = Arrays.asList(bar1);
+		final List<EObject> bars2 = Arrays.asList(bar2);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bars1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bars2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(value1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(value2).toArray());
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(orgValue1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(orgValue2).toArray());
+
+		// we add the copy also to the many ref of the opposite
+		final Object oppValue1 = bar1.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue2 = bar2.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertArrayEquals(new Object[] { foo1, foo1Copy }, asList(oppValue1).toArray());
+		assertArrayEquals(new Object[] { foo2, foo2Copy }, asList(oppValue2).toArray());
+	}
+
+	/**
+	 * before copy:
+	 * foo1 -> bar1
+	 * foo2 -> bar2
+	 * bar1 -> foo1
+	 * bar2 -> foo2
+	 *
+	 * after copy:
+	 * foo1 -> bar1, bar1Copy
+	 * foo2 -> bar2, bar2Copy
+	 * bar1 -> foo1, foo1Copy
+	 * bar2 -> foo2, foo1Copy
+	 *
+	 * fooCopy1 -> bar1, bar1Copy
+	 * fooCopy2 -> bar2, bar2Copy
+	 * barCopy1 -> foo1, foo1Copy
+	 * barCopy2 -> foo2, foo2Copy
+	 */
+	@Test
+	public void test_refManyOppMany_both() {
+		createTestPackage();
+		final String refToTest = "refManyOppMany";
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+		final List<EObject> bars1 = Arrays.asList(bar1);
+		final List<EObject> bars2 = Arrays.asList(bar2);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bars1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bars2);
+
+		// copy four objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2, bar1, bar2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+		final EObject bar1Copy = iterator.next();
+		final EObject bar2Copy = iterator.next();
+
+		// assert copy
+		{
+			final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+			final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+			final List<EObject> list1 = asList(value1);
+			final List<EObject> list2 = asList(value2);
+			assertEquals(2, list1.size());
+			assertEquals(2, list2.size());
+
+			assertSame(bar1, list1.get(0));
+			assertSame(bar2, list2.get(0));
+			assertSame(bar1Copy, list1.get(1));
+			assertSame(bar2Copy, list2.get(1));
+		}
+		{
+			final Object value1 = bar1Copy.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+			final Object value2 = bar2Copy.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+			final List<EObject> list1 = asList(value1);
+			final List<EObject> list2 = asList(value2);
+			assertEquals(2, list1.size());
+			assertEquals(2, list2.size());
+
+			assertSame(foo1, list1.get(0));
+			assertSame(foo2, list2.get(0));
+			assertSame(foo1Copy, list1.get(1));
+			assertSame(foo2Copy, list2.get(1));
+		}
+
+		// assert old data
+		{
+			final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+			final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+			final List<EObject> list1 = asList(orgValue1);
+			final List<EObject> list2 = asList(orgValue2);
+			assertEquals(2, list1.size());
+			assertEquals(2, list2.size());
+
+			assertSame(bar1, list1.get(0));
+			assertSame(bar2, list2.get(0));
+			assertSame(bar1Copy, list1.get(1));
+			assertSame(bar2Copy, list2.get(1));
+		}
+		// we add the copy also to the many ref of the opposite
+		{
+			final Object oppValue1 = bar1.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+			final Object oppValue2 = bar2.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+
+			final List<EObject> list1 = asList(oppValue1);
+			final List<EObject> list2 = asList(oppValue2);
+			assertEquals(2, list1.size());
+			assertEquals(2, list2.size());
+
+			assertSame(foo1, list1.get(0));
+			assertSame(foo1Copy, list1.get(1));
+			assertSame(foo2, list2.get(0));
+			assertSame(foo2Copy, list2.get(1));
+		}
+	}
+
+	@Test
+	public void test_containmentSingleNoOpp() {
+		createTestPackage();
+
+		final String refToTest = "containmentSingleNoOpp";
+
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bar1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bar2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertNotSame(bar1, value1);
+		assertNotSame(bar2, value2);
+		assertTrue(EcoreUtil.equals(bar1, (EObject) value1));
+		assertTrue(EcoreUtil.equals(bar2, (EObject) value2));
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, orgValue1);
+		assertSame(bar2, orgValue2);
+	}
+
+	@Test
+	public void test_containmentManyNoOpp() {
+		createTestPackage();
+		final String refToTest = "containmentManyNoOpp";
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar10 = EcoreUtil.create(barClass);
+		final EObject bar11 = EcoreUtil.create(barClass);
+		final EObject bar20 = EcoreUtil.create(barClass);
+		final EObject bar21 = EcoreUtil.create(barClass);
+		final List<EObject> bars1 = Arrays.asList(bar10, bar11);
+		final List<EObject> bars2 = Arrays.asList(bar20, bar21);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar10.eSet(barClass.getEStructuralFeature("name"), "Bar 10");
+		bar11.eSet(barClass.getEStructuralFeature("name"), "Bar 11");
+		bar20.eSet(barClass.getEStructuralFeature("name"), "Bar 20");
+		bar21.eSet(barClass.getEStructuralFeature("name"), "Bar 21");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bars1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bars2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertTrue(EcoreUtil.equals(bars1, asList(value1)));
+		assertTrue(EcoreUtil.equals(bars2, asList(value2)));
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(orgValue1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(orgValue2).toArray());
+	}
+
+	@Test
+	public void test_containmentSingleOppSingle() {
+		createTestPackage();
+
+		final String refToTest = "containmentSingleOppSingle";
+
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar1 = EcoreUtil.create(barClass);
+		final EObject bar2 = EcoreUtil.create(barClass);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar1.eSet(barClass.getEStructuralFeature("name"), "Bar 1");
+		bar2.eSet(barClass.getEStructuralFeature("name"), "Bar 2");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bar1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bar2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertNotSame(bar1, value1);
+		assertNotSame(bar2, value2);
+		assertTrue(EcoreUtil.equals(bar1, (EObject) value1));
+		assertTrue(EcoreUtil.equals(bar2, (EObject) value2));
+
+		final Object oppCopyValue1 = ((EObject) value1).eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppCopyValue2 = ((EObject) value2).eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertSame(foo1Copy, oppCopyValue1);
+		assertSame(foo2Copy, oppCopyValue2);
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertSame(bar1, orgValue1);
+		assertSame(bar2, orgValue2);
+
+		final Object oppValue1 = bar1.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue2 = bar2.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertSame(foo1, oppValue1);
+		assertSame(foo2, oppValue2);
+	}
+
+	@Test
+	public void test_containmentManyOppSingle() {
+		createTestPackage();
+		final String refToTest = "containmentManyOppSingle";
+		final EObject foo1 = EcoreUtil.create(fooClass);
+		final EObject foo2 = EcoreUtil.create(fooClass);
+		final EObject bar10 = EcoreUtil.create(barClass);
+		final EObject bar11 = EcoreUtil.create(barClass);
+		final EObject bar20 = EcoreUtil.create(barClass);
+		final EObject bar21 = EcoreUtil.create(barClass);
+		final List<EObject> bars1 = Arrays.asList(bar10, bar11);
+		final List<EObject> bars2 = Arrays.asList(bar20, bar21);
+
+		foo1.eSet(fooClass.getEStructuralFeature("name"), "Foo 1");
+		foo2.eSet(fooClass.getEStructuralFeature("name"), "Foo 2");
+		bar10.eSet(barClass.getEStructuralFeature("name"), "Bar 10");
+		bar11.eSet(barClass.getEStructuralFeature("name"), "Bar 11");
+		bar20.eSet(barClass.getEStructuralFeature("name"), "Bar 20");
+		bar21.eSet(barClass.getEStructuralFeature("name"), "Bar 21");
+
+		// fill reference
+		foo1.eSet(fooClass.getEStructuralFeature(refToTest), bars1);
+		foo2.eSet(fooClass.getEStructuralFeature(refToTest), bars2);
+
+		// copy two objects
+		final Collection<EObject> original = Arrays.asList(foo1, foo2);
+		final Collection<EObject> copy = action.copy(original);
+		final Iterator<EObject> iterator = copy.iterator();
+		final EObject foo1Copy = iterator.next();
+		final EObject foo2Copy = iterator.next();
+
+		// assert copy
+		final Object value1 = foo1Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object value2 = foo2Copy.eGet(fooClass.getEStructuralFeature(refToTest));
+		final List<EObject> copyBars1 = asList(value1);
+		final List<EObject> copyBars2 = asList(value2);
+		assertTrue(EcoreUtil.equals(bars1, copyBars1));
+		assertTrue(EcoreUtil.equals(bars2, copyBars2));
+
+		assertTrue(EcoreUtil.equals(bars1.get(0), copyBars1.get(0)));
+		assertTrue(EcoreUtil.equals(bars1.get(1), copyBars1.get(1)));
+		assertTrue(EcoreUtil.equals(bars2.get(0), copyBars2.get(0)));
+		assertTrue(EcoreUtil.equals(bars2.get(1), copyBars2.get(1)));
+
+		assertSame(foo1Copy, copyBars1.get(0).eGet(barClass.getEStructuralFeature(refToTest + "-opposite")));
+		assertSame(foo1Copy, copyBars1.get(1).eGet(barClass.getEStructuralFeature(refToTest + "-opposite")));
+		assertSame(foo2Copy, copyBars2.get(0).eGet(barClass.getEStructuralFeature(refToTest + "-opposite")));
+		assertSame(foo2Copy, copyBars2.get(1).eGet(barClass.getEStructuralFeature(refToTest + "-opposite")));
+
+		// assert old data
+		final Object orgValue1 = foo1.eGet(fooClass.getEStructuralFeature(refToTest));
+		final Object orgValue2 = foo2.eGet(fooClass.getEStructuralFeature(refToTest));
+		assertArrayEquals(bars1.toArray(), asList(orgValue1).toArray());
+		assertArrayEquals(bars2.toArray(), asList(orgValue2).toArray());
+
+		final Object oppValue10 = bar10.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue11 = bar11.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue20 = bar20.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		final Object oppValue21 = bar21.eGet(barClass.getEStructuralFeature(refToTest + "-opposite"));
+		assertSame(foo1, oppValue10);
+		assertSame(foo1, oppValue11);
+		assertSame(foo2, oppValue20);
+		assertSame(foo2, oppValue21);
+	}
+
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	private List<EObject> asList(Object value) {
+		return (List) value;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction_Test.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction_Test.java
new file mode 100644
index 0000000..1556ec8
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowDownAction_Test.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt.action;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+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 org.eclipse.core.databinding.observable.list.IObservableList;
+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.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+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.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.jface.viewers.AbstractTableViewer;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MoveRowDownAction_Test {
+
+	private MoveRowDownAction action;
+	private AbstractTableViewer viewer;
+	private EPackage ePackage;
+	private EClass eClass1;
+	private EClass eClass2;
+
+	@Before
+	public void setUp() throws Exception {
+		ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		eClass1 = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(eClass1);
+		eClass2 = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(eClass2);
+
+		final ResourceSet rs = new ResourceSetImpl();
+		rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
+		final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+			new ReflectiveItemProviderAdapterFactory(),
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			adapterFactory,
+			new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+		resource.getContents().add(ePackage);
+
+		final TableRendererViewerActionContext actionContext = mock(TableRendererViewerActionContext.class);
+		when(actionContext.getEditingDomain()).thenReturn(domain);
+		when(actionContext.getSetting())
+			.thenReturn(((InternalEObject) ePackage).eSetting(EcorePackage.eINSTANCE.getEPackage_EClassifiers()));
+		action = spy(new MoveRowDownAction(actionContext));
+		viewer = mock(AbstractTableViewer.class);
+		when(actionContext.getViewer()).thenReturn(viewer);
+		final IObservableList<?> input = mock(IObservableList.class);
+		when(input.size()).thenReturn(2);
+		when(viewer.getInput()).thenReturn(input);
+
+		final VTableControl tableControl = mock(VTableControl.class);
+		when(actionContext.getVElement()).thenReturn(tableControl);
+		when(tableControl.isEffectivelyReadonly()).thenReturn(false);
+		when(tableControl.isEffectivelyEnabled()).thenReturn(true);
+	}
+
+	@Test
+	public void testCanExecute() {
+		// test that the top most element can be moved down
+		when(viewer.getSelection()).thenReturn(new StructuredSelection(eClass1));
+		assertTrue(action.canExecute());
+		// test that the last element cannot be moved down
+		when(viewer.getSelection()).thenReturn(new StructuredSelection(eClass2));
+		assertFalse(action.canExecute());
+	}
+
+	@Test
+	public void testExecute() {
+
+		// test that the top most element cannot be moved up
+		when(viewer.getSelection()).thenReturn(new StructuredSelection(eClass1));
+		action.execute();
+
+		assertEquals(eClass1, ePackage.getEClassifiers().get(1));
+		verify(viewer).refresh();
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction_Test.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction_Test.java
new file mode 100644
index 0000000..ec20aaf
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/action/MoveRowUpAction_Test.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt.action;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+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 org.eclipse.core.databinding.observable.list.IObservableList;
+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.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+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.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.jface.viewers.AbstractTableViewer;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MoveRowUpAction_Test {
+
+	private MoveRowUpAction action;
+	private AbstractTableViewer viewer;
+	private EPackage ePackage;
+	private EClass eClass1;
+	private EClass eClass2;
+
+	@Before
+	public void setUp() throws Exception {
+		ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		eClass1 = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(eClass1);
+		eClass2 = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(eClass2);
+
+		final ResourceSet rs = new ResourceSetImpl();
+		rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
+		final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+			new ReflectiveItemProviderAdapterFactory(),
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			adapterFactory,
+			new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+		resource.getContents().add(ePackage);
+
+		final TableRendererViewerActionContext actionContext = mock(TableRendererViewerActionContext.class);
+		when(actionContext.getEditingDomain()).thenReturn(domain);
+		when(actionContext.getSetting())
+			.thenReturn(((InternalEObject) ePackage).eSetting(EcorePackage.eINSTANCE.getEPackage_EClassifiers()));
+		action = spy(new MoveRowUpAction(actionContext));
+		viewer = mock(AbstractTableViewer.class);
+		when(actionContext.getViewer()).thenReturn(viewer);
+		final IObservableList<?> input = mock(IObservableList.class);
+		when(input.size()).thenReturn(2);
+		when(viewer.getInput()).thenReturn(input);
+
+		final VTableControl tableControl = mock(VTableControl.class);
+		when(actionContext.getVElement()).thenReturn(tableControl);
+		when(tableControl.isEffectivelyReadonly()).thenReturn(false);
+		when(tableControl.isEffectivelyEnabled()).thenReturn(true);
+	}
+
+	@Test
+	public void testCanExecute() {
+		// test that the top most element cannot be moved up
+		when(viewer.getSelection()).thenReturn(new StructuredSelection(eClass1));
+		assertFalse(action.canExecute());
+		// test that the last element can be moved up
+		when(viewer.getSelection()).thenReturn(new StructuredSelection(eClass2));
+		assertTrue(action.canExecute());
+	}
+
+	@Test
+	public void testExecute() {
+
+		// test that the top most element cannot be moved up
+		when(viewer.getSelection()).thenReturn(new StructuredSelection(eClass2));
+		action.execute();
+
+		assertEquals(eClass2, ePackage.getEClassifiers().get(0));
+		verify(viewer).refresh();
+	}
+
+}
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 f7dedd3..da074f1 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
@@ -12,14 +12,20 @@
  * Jonas - initial API and implementation
  * Lucas Koehler - added SWTTable_Test
  * Christian W. Damus - add TableControlSWTRenderer_ITest
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.table.ui.swt.test;
 
+import org.eclipse.emf.ecp.view.internal.table.swt.TableDetailRevealProvider_PTest;
+import org.eclipse.emf.ecp.view.internal.table.swt.TableRevealProvider_PTest;
 import org.eclipse.emf.ecp.view.internal.table.swt.cell.MultiReferenceCellEditor_PTest;
 import org.eclipse.emf.ecp.view.internal.table.swt.cell.MultiReferenceTooltipModifier_PTest;
+import org.eclipse.emf.ecp.view.spi.table.swt.ItemProviderEnumCellEditor_PTest;
+import org.eclipse.emf.ecp.view.spi.table.swt.LocalizedEnumeratorComparator_PTest;
 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.TableControlRendererSort_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;
@@ -30,7 +36,9 @@
 @SuiteClasses({ SWTTable_PTest.class, SWTTableDatabindingLabel_PTest.class, RunnableManagerTest.class,
 	TableControlDetailPanelRenderer_PTest.class, MultiReferenceTooltipModifier_PTest.class,
 	MultiReferenceCellEditor_PTest.class, TableControlSWTRendererPerformance_PTest.class,
-	TableControlSWTRenderer_ITest.class,
+	TableControlSWTRenderer_ITest.class, TableControlRendererSort_PTest.class,
+	ItemProviderEnumCellEditor_PTest.class, LocalizedEnumeratorComparator_PTest.class,
+	TableRevealProvider_PTest.class, TableDetailRevealProvider_PTest.class,
 })
 public class AllTests {
 
diff --git a/tests/org.eclipse.emf.ecp.view.table.validation.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.table.validation.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.table.validation.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.table.validation.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 30fd106..5702a7b 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.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.table.validation.test;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.validation.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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 7928164..0a5557d 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.template.model.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.template.model.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.template.model.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.template.model.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c665aea..8984bce 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.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.template.model.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.template.model.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.view.annotation.model;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="[1.22.0,1.23.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 b556636..00cc30b 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.template.service.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.template.service.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.template.service.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.template.service.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 29a14d1..63d167a 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Template Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.service.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.template.service;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.21.0",
- org.eclipse.emf.ecp.view.template.service;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.template.service.test;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.label.model;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emf.ecp.view.template.service;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.22.0",
+ org.eclipse.emf.ecp.view.template.service;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.service.test;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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
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 146c0dd..f1c28a9 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+	<version>1.22.0-SNAPSHOT</version>

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

 	

 		<build>

diff --git a/tests/org.eclipse.emf.ecp.view.template.service.test/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl_Test.java b/tests/org.eclipse.emf.ecp.view.template.service.test/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl_Test.java
index 453faf8..eafafe7 100644
--- a/tests/org.eclipse.emf.ecp.view.template.service.test/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl_Test.java
+++ b/tests/org.eclipse.emf.ecp.view.template.service.test/src/org/eclipse/emf/ecp/view/template/service/ViewTemplateSupplierImpl_Test.java
@@ -33,9 +33,12 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+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;
@@ -54,6 +57,7 @@
 import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainModelReferenceSelector;
 import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferenceFactory;
 import org.eclipse.emfforms.spi.core.services.segments.EMFFormsSegmentGenerator;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -66,10 +70,13 @@
 public class ViewTemplateSupplierImpl_Test {
 
 	private ViewTemplateSupplierImpl templateSupplier;
+	private LegacyDmrToRootEClass dmrToRootEClass;
 
 	@Before
 	public void setup() {
 		templateSupplier = new ViewTemplateSupplierImpl();
+		dmrToRootEClass = mock(LegacyDmrToRootEClass.class);
+		templateSupplier.setLegacyDmrToRootEClass(dmrToRootEClass);
 	}
 
 	@Test
@@ -188,12 +195,8 @@
 		final VTStyle style = VTTemplateFactory.eINSTANCE.createStyle();
 		final VTDomainModelReferenceSelector dmrSelector = VTDomainmodelreferenceFactory.eINSTANCE
 			.createDomainModelReferenceSelector();
-		final VFeaturePathDomainModelReference featureDmr = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		featureDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.EREFERENCE__EREFERENCE_TYPE);
-		featureDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.ECLASSIFIER__EPACKAGE);
-		featureDmr.setDomainModelEFeature(EcorePackage.Literals.ENAMED_ELEMENT__NAME);
-		dmrSelector.setDomainModelReference(featureDmr);
+		final VDomainModelReference dmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		dmrSelector.setDomainModelReference(dmr);
 		style.setSelector(dmrSelector);
 		template.getStyles().add(style);
 
@@ -210,27 +213,28 @@
 		segmentList.add(segment1);
 		segmentList.add(segment2);
 
-		when(segmentGenerator.generateSegments(featureDmr)).thenReturn(segmentList);
+		final EClass rootEClass = EcoreFactory.eINSTANCE.createEClass();
+		when(dmrToRootEClass.getRootEClass(dmr)).thenReturn(Optional.of(rootEClass));
+		when(segmentGenerator.generateSegments(dmr)).thenReturn(segmentList);
 
 		templateSupplier.generateSegments(template);
 
-		assertEquals("Wrong number of generated segments", 3, featureDmr.getSegments().size()); //$NON-NLS-1$
-		assertSame("Wrong order of segments", segment0, featureDmr.getSegments().get(0)); //$NON-NLS-1$
-		assertSame("Wrong order of segments", segment1, featureDmr.getSegments().get(1)); //$NON-NLS-1$
-		assertSame("Wrong order of segments", segment2, featureDmr.getSegments().get(2)); //$NON-NLS-1$
-		assertSame("Incorrect root EClass set", EcorePackage.Literals.EREFERENCE, dmrSelector.getRootEClass()); //$NON-NLS-1$
+		assertEquals("Wrong number of generated segments", 3, dmr.getSegments().size()); //$NON-NLS-1$
+		assertSame("Wrong order of segments", segment0, dmr.getSegments().get(0)); //$NON-NLS-1$
+		assertSame("Wrong order of segments", segment1, dmr.getSegments().get(1)); //$NON-NLS-1$
+		assertSame("Wrong order of segments", segment2, dmr.getSegments().get(2)); //$NON-NLS-1$
+		assertSame("Incorrect root EClass set", rootEClass, dmrSelector.getRootEClass()); //$NON-NLS-1$
 	}
 
+	/** Segments are generated but root EClass cannot be determined. */
 	@Test
-	public void generateSegments_noRefPath() {
+	public void generateSegments_noRootEClass() {
 		final VTViewTemplate template = VTTemplateFactory.eINSTANCE.createViewTemplate();
 		final VTStyle style = VTTemplateFactory.eINSTANCE.createStyle();
 		final VTDomainModelReferenceSelector dmrSelector = VTDomainmodelreferenceFactory.eINSTANCE
 			.createDomainModelReferenceSelector();
-		final VFeaturePathDomainModelReference featureDmr = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		featureDmr.setDomainModelEFeature(EcorePackage.Literals.ENAMED_ELEMENT__NAME);
-		dmrSelector.setDomainModelReference(featureDmr);
+		final VDomainModelReference dmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		dmrSelector.setDomainModelReference(dmr);
 		style.setSelector(dmrSelector);
 		template.getStyles().add(style);
 
@@ -241,15 +245,16 @@
 			.createFeatureDomainModelReferenceSegment();
 		segmentList.add(segment);
 
-		when(segmentGenerator.generateSegments(featureDmr)).thenReturn(segmentList);
+		when(dmrToRootEClass.getRootEClass(dmr)).thenReturn(Optional.empty());
+		when(segmentGenerator.generateSegments(dmr)).thenReturn(segmentList);
 
 		templateSupplier.generateSegments(template);
 
-		assertEquals("Wrong number of generated segments", 1, featureDmr.getSegments().size()); //$NON-NLS-1$
-		assertSame("Wrong order of segments", segment, featureDmr.getSegments().get(0)); //$NON-NLS-1$
-		assertSame("Incorrect root EClass set", EcorePackage.Literals.ENAMED_ELEMENT, dmrSelector.getRootEClass()); //$NON-NLS-1$
+		assertEquals("No segments should be set", 0, dmr.getSegments().size()); //$NON-NLS-1$
+		assertNull("No root EClass should be set", dmrSelector.getRootEClass()); //$NON-NLS-1$
 	}
 
+	/** Root EClass can be determined but no segments are generated. */
 	@Test
 	public void generateSegments_noSegmentsGenerated() {
 		final VTViewTemplate template = VTTemplateFactory.eINSTANCE.createViewTemplate();
@@ -263,6 +268,7 @@
 		style.setSelector(dmrSelector);
 		template.getStyles().add(style);
 
+		when(dmrToRootEClass.getRootEClass(any())).thenReturn(Optional.of(mock(EClass.class)));
 		final EMFFormsSegmentGenerator segmentGenerator = mock(EMFFormsSegmentGenerator.class);
 		when(segmentGenerator.generateSegments(featureDmr)).thenReturn(Collections.emptyList());
 		templateSupplier.setEMFFormsSegmentGenerator(segmentGenerator);
@@ -274,28 +280,6 @@
 	}
 
 	@Test
-	public void generateSegments_featureDmrWithoutFeatures() {
-		final VTViewTemplate template = VTTemplateFactory.eINSTANCE.createViewTemplate();
-		final VTStyle style = VTTemplateFactory.eINSTANCE.createStyle();
-		final VTDomainModelReferenceSelector dmrSelector = VTDomainmodelreferenceFactory.eINSTANCE
-			.createDomainModelReferenceSelector();
-		final VFeaturePathDomainModelReference featureDmr = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		dmrSelector.setDomainModelReference(featureDmr);
-		style.setSelector(dmrSelector);
-		template.getStyles().add(style);
-
-		final EMFFormsSegmentGenerator segmentGenerator = mock(EMFFormsSegmentGenerator.class);
-		when(segmentGenerator.generateSegments(featureDmr)).thenReturn(Collections.emptyList());
-		templateSupplier.setEMFFormsSegmentGenerator(segmentGenerator);
-
-		templateSupplier.generateSegments(template);
-
-		assertEquals("No segments should be set", 0, featureDmr.getSegments().size()); //$NON-NLS-1$
-		assertNull("No root EClass should be set if the dmr doesn't have any features", dmrSelector.getRootEClass()); //$NON-NLS-1$
-	}
-
-	@Test
 	public void generateSegments_dmrWithExistingSegments() {
 		final VTViewTemplate template = VTTemplateFactory.eINSTANCE.createViewTemplate();
 		final VTStyle style = VTTemplateFactory.eINSTANCE.createStyle();
@@ -323,27 +307,6 @@
 		assertSame("Incorrect root EClass set", EcorePackage.Literals.ENAMED_ELEMENT, dmrSelector.getRootEClass()); //$NON-NLS-1$
 	}
 
-	@Test
-	public void generateSegments_noFeatureDmr() {
-		final VTViewTemplate template = VTTemplateFactory.eINSTANCE.createViewTemplate();
-		final VTStyle style = VTTemplateFactory.eINSTANCE.createStyle();
-		final VTDomainModelReferenceSelector dmrSelector = VTDomainmodelreferenceFactory.eINSTANCE
-			.createDomainModelReferenceSelector();
-		final VDomainModelReference dmr = VViewFactory.eINSTANCE.createDomainModelReference();
-		dmrSelector.setDomainModelReference(dmr);
-		style.setSelector(dmrSelector);
-		template.getStyles().add(style);
-
-		final EMFFormsSegmentGenerator segmentGenerator = mock(EMFFormsSegmentGenerator.class);
-		templateSupplier.setEMFFormsSegmentGenerator(segmentGenerator);
-
-		templateSupplier.generateSegments(template);
-
-		verify(segmentGenerator, never()).generateSegments(any(VDomainModelReference.class));
-		assertEquals("Wrong number of segments", 0, dmr.getSegments().size()); //$NON-NLS-1$
-		assertNull("No root EClass should be set", dmrSelector.getRootEClass()); //$NON-NLS-1$
-	}
-
 	private static VTStyle mockStyle(double specificity) {
 		final VTStyle style = mock(VTStyle.class);
 		final VTStyleSelector styleSelector = mock(VTStyleSelector.class);
diff --git a/tests/org.eclipse.emf.ecp.view.template.tooling.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.template.tooling.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.template.tooling.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.template.tooling.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.template.tooling.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.template.tooling.test/META-INF/MANIFEST.MF
index 5cdeecd..e97af2f 100644
--- a/tests/org.eclipse.emf.ecp.view.template.tooling.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.template.tooling.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.tooling.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.template.tooling;bundle-version="[1.21.0,1.22.0)"
-Automatic-Module-Name: org.eclipse.emf.ecp.view.template.tooling.test
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: org.eclipse.emf.ecp.view.template.tooling;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.template.internal.tooling.controls;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.template.internal.tooling.controls;version="1.21.0"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.view.template.tooling.test
diff --git a/tests/org.eclipse.emf.ecp.view.template.tooling.test/pom.xml b/tests/org.eclipse.emf.ecp.view.template.tooling.test/pom.xml
index 4825306..e6f2474 100644
--- a/tests/org.eclipse.emf.ecp.view.template.tooling.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.template.tooling.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.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.tooling.test</artifactId>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.test.common.swt/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.test.common.swt/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common.swt/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.test.common.swt/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cfe6641..fbd594d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.test.common.swt;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.test.common.swt.spi;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.test.common.swt;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.test.common.swt.spi;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)";visibility:=reexport
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.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 d75dd9e..d5ff097 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.21.0-SNAPSHOT</version>

+		<version>1.22.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.21.0-SNAPSHOT</version>

+  <version>1.22.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/SWTViewTestHelper.java b/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTViewTestHelper.java
index 41ab261..a754549 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTViewTestHelper.java
+++ b/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTViewTestHelper.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 2.0
@@ -10,9 +10,12 @@
  *
  * Contributors:
  * Jonas Helming - initial API and implementation
+ * Christian W. Damus - bug 548592
  */
 package org.eclipse.emf.ecp.view.test.common.swt.spi;
 
+import static org.junit.Assert.fail;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -143,15 +146,35 @@
 	 * @throws EMFFormsNoRendererException If the renderer for the given {@link VElement} is not found
 	 */
 	public static RendererResult renderControl(VElement renderable, EObject input, Shell shell)
-		throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
+
 		final ViewModelContext viewContext = ViewModelContextFactory.INSTANCE.createViewModelContext(renderable, input);
+		return renderControl(viewContext, shell);
+	}
+
+	/**
+	 * Render the given {@code context} on the given {@code composite}.
+	 *
+	 * @param context view-model context to render
+	 * @param composite the composite to render on
+	 * @return a {@link RendererResult}
+	 *
+	 * @throws NoRendererFoundException If a required sub renderer is not found
+	 * @throws NoPropertyDescriptorFoundExeption If no PropertyDescriptor was found for the domain model instance
+	 * @throws EMFFormsNoRendererException If the renderer for the given {@link VElement} is not found
+	 *
+	 * @since 1.22
+	 */
+	public static RendererResult renderControl(ViewModelContext context, Composite composite)
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
+
 		final AbstractSWTRenderer<VElement> renderer = factory
-			.getRendererInstance(renderable, viewContext);
+			.getRendererInstance(context.getViewModel(), context);
 		final SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 			.createEmptyGridDescription());
-		final Control control = renderer.render(gridDescription.getGrid().get(gridDescription.getColumns() - 1), shell);
-		renderer.finalizeRendering(shell);
+		final Control control = renderer.render(gridDescription.getGrid().get(gridDescription.getColumns() - 1),
+			composite);
+		renderer.finalizeRendering(composite);
 
 		return new RendererResult() {
 			@Override
@@ -167,6 +190,28 @@
 	}
 
 	/**
+	 * Render the given {@code context} on the given {@code composite}.
+	 *
+	 * @param context view-model context to render
+	 * @param composite the composite to render on
+	 * @return the rendered SWT control
+	 *
+	 * @since 1.22
+	 */
+	public static Control render(ViewModelContext context, Composite composite) {
+		try {
+			final Optional<Control> result = renderControl(context, composite).getControl();
+			return result.isPresent()
+				? result.get()
+				: null;
+		} catch (NoRendererFoundException | NoPropertyDescriptorFoundExeption | EMFFormsNoRendererException e) {
+			e.printStackTrace();
+			fail("Failed to render: " + e.getMessage());
+			return null; // Unreachable
+		}
+	}
+
+	/**
 	 *
 	 * @param composite a {@link Composite} with a {@link GridLayout}
 	 * @return the number of columns
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/.settings/.api_filters b/tests/org.eclipse.emf.ecp.view.test.common/.settings/.api_filters
new file mode 100644
index 0000000..058b30c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/.settings/.api_filters
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.test.common" version="2">
+    <resource path="src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsRevealServiceFixture.java" type="org.eclipse.emf.ecp.view.test.common.swt.spi.EMFFormsRevealServiceFixture">
+        <filter comment="This is a test fixture, not production API" id="574619656">
+            <message_arguments>
+                <message_argument value="EMFFormsRevealService"/>
+                <message_argument value="EMFFormsRevealServiceFixture&lt;T&gt;"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.test.common/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.test.common/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6e09ffd..553270c 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,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Test Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.test.common
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.test.common.spi;version="1.21.0"
-Require-Bundle: org.eclipse.emf.ecore;bundle-version="2.9.0"
+Export-Package: org.eclipse.emf.ecp.view.test.common.spi;version="1.22.0"
+Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.9.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.ecp.view.model;bundle-version="[1.22.0,1.23.0)"
+Import-Package: org.eclipse.core.runtime;version="[3.5.0,4.0.0)",
+ org.eclipse.e4.core.contexts;version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.reveal;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.22.0,1.23.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.test.common
+Bundle-ActivationPolicy: lazy
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 fe9628f..dc60daa 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsRevealServiceFixture.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsRevealServiceFixture.java
new file mode 100644
index 0000000..f5f3e1f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsRevealServiceFixture.java
@@ -0,0 +1,232 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.mockito.Mockito.mock;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Supplier;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStepKind;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceManager;
+import org.hamcrest.FeatureMatcher;
+import org.hamcrest.Matcher;
+import org.junit.runner.Description;
+
+/**
+ * A convenient fixture for JUnit testing with the {@link EMFFormsRevealService}.
+ *
+ * @param <T> the type of view context to mock up
+ *
+ * @since 1.22
+ */
+public class EMFFormsRevealServiceFixture<T extends EMFFormsViewContext> extends EMFFormsViewContextFixture<T>
+	implements EMFFormsRevealService {
+
+	private EMFFormsRevealService service;
+
+	//
+	// Creation
+	//
+
+	/**
+	 * Initializes me.
+	 */
+	protected EMFFormsRevealServiceFixture(Class<T> contextType,
+		Supplier<? extends VElement> viewSupplier, Supplier<? extends EObject> domainModelSupplier) {
+
+		super(contextType, viewSupplier, domainModelSupplier);
+	}
+
+	/**
+	 * Initializes me.
+	 */
+	protected EMFFormsRevealServiceFixture(Class<T> contextType, Object owner) {
+		super(contextType, owner);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static EMFFormsRevealServiceFixture<EMFFormsViewContext> create() {
+		return create(EMFFormsViewContext.class);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static <T extends EMFFormsViewContext> EMFFormsRevealServiceFixture<T> create(Class<T> contextType) {
+		return create(contextType, () -> mock(VElement.class), () -> mock(EObject.class));
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static EMFFormsRevealServiceFixture<EMFFormsViewContext> create(
+		Supplier<? extends VElement> viewSupplier, Supplier<? extends EObject> domainModelSupplier) {
+
+		return create(EMFFormsViewContext.class, viewSupplier, domainModelSupplier);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static <T extends EMFFormsViewContext> EMFFormsRevealServiceFixture<T> create(Class<T> contextType,
+		Supplier<? extends VElement> viewSupplier, Supplier<? extends EObject> domainModelSupplier) {
+
+		return new EMFFormsRevealServiceFixture<>(contextType, viewSupplier, domainModelSupplier);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static EMFFormsRevealServiceFixture<EMFFormsViewContext> create(Object owner) {
+		return create(EMFFormsViewContext.class, owner);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static <T extends EMFFormsViewContext> EMFFormsRevealServiceFixture<T> create(Class<T> contextType,
+		Object owner) {
+
+		return new EMFFormsRevealServiceFixture<>(contextType, owner);
+	}
+
+	//
+	// Test fixture protocol
+	//
+
+	public final EMFFormsRevealService getService() {
+		return service;
+	}
+
+	//
+	// Test lifecycle
+	//
+
+	@Override
+	protected void starting(Description description) {
+		super.starting(description);
+
+		final EMFFormsViewServiceManager serviceManager = getService(EMFFormsViewServiceManager.class);
+		service = serviceManager.createGlobalImmediateService(EMFFormsRevealService.class, getViewContext()).get();
+	}
+
+	@Override
+	protected void finished(Description description) {
+		super.finished(description);
+
+		service = null;
+	}
+
+	//
+	// Service protocol delegation
+	//
+
+	@Override
+	public boolean reveal(EObject object) {
+		return service.reveal(object);
+	}
+
+	@Override
+	public boolean reveal(EObject object, EStructuralFeature feature) {
+		return service.reveal(object, feature);
+	}
+
+	@Override
+	public RevealStep reveal(EObject object, VElement scope) {
+		return service.reveal(object, scope);
+	}
+
+	@Override
+	public RevealStep reveal(EObject object, EStructuralFeature feature, VElement scope) {
+		return reveal(object, feature, scope);
+	}
+
+	@Override
+	public void addRevealProvider(EMFFormsRevealProvider provider) {
+		service.addRevealProvider(provider);
+	}
+
+	@Override
+	public void removeRevealProvider(EMFFormsRevealProvider provider) {
+		service.removeRevealProvider(provider);
+	}
+
+	//
+	// Test framework
+	//
+
+	public static Matcher<RevealStep> isA(RevealStepKind stepKind) {
+		return new FeatureMatcher<RevealStep, RevealStepKind>(is(stepKind), "isA", "stepKind") {
+
+			@Override
+			protected RevealStepKind featureValueOf(RevealStep actual) {
+				return actual.getType();
+			}
+		};
+	}
+
+	@SafeVarargs
+	public static <T> Matcher<List<? super T>> isListOf(T... items) {
+		return is(Arrays.asList(items));
+	}
+
+	public static Runnable pass() {
+		return EMFFormsRevealServiceFixture::pass;
+	}
+
+	//
+	// Nested types
+	//
+
+	public static class TestProvider implements EMFFormsRevealProvider {
+
+		private final Double bid;
+
+		/**
+		 * Initializes me.
+		 */
+		public TestProvider() {
+			this(1.0);
+		}
+
+		/**
+		 * Initializes me.
+		 */
+		public TestProvider(Double bid) {
+			super();
+
+			this.bid = bid;
+		}
+
+		@Bid
+		public Double bid() {
+			return bid;
+		}
+
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsViewContextFixture.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsViewContextFixture.java
new file mode 100644
index 0000000..c11c633
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFFormsViewContextFixture.java
@@ -0,0 +1,380 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import static org.hamcrest.CoreMatchers.not;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.lang.annotation.Annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceManager;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * A convenient fixture for JUnit testing with a mock {@link EMFFormsViewContext}.
+ *
+ * @param <T> the type of view context to mock up
+ *
+ * @since 1.22
+ */
+public class EMFFormsViewContextFixture<T extends EMFFormsViewContext> extends TestWatcher {
+
+	private final Class<T> contextType;
+	private final Supplier<? extends VElement> viewSupplier;
+	private final Supplier<? extends EObject> domainModelSupplier;
+
+	private T viewContext;
+
+	private IEclipseContext e4Context;
+
+	private final Map<Class<?>, Object> lazyServices = new HashMap<>();
+	private final Set<T> childContexts = new HashSet<>();
+	private final Set<EMFFormsContextListener> capturedListeners = new HashSet<>();
+
+	/**
+	 * Initializes me.
+	 */
+	protected EMFFormsViewContextFixture(Class<T> contextType,
+		Supplier<? extends VElement> viewSupplier, Supplier<? extends EObject> domainModelSupplier) {
+
+		super();
+
+		this.contextType = contextType;
+		this.viewSupplier = viewSupplier;
+		this.domainModelSupplier = domainModelSupplier;
+	}
+
+	/**
+	 * Initializes me.
+	 */
+	protected EMFFormsViewContextFixture(Class<T> contextType, Object owner) {
+		this(contextType, fieldSupplier(owner, ViewModel.class, VElement.class),
+			fieldSupplier(owner, DomainModel.class, EObject.class));
+	}
+
+	//
+	// Creation
+	//
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static EMFFormsViewContextFixture<EMFFormsViewContext> create() {
+		return create(EMFFormsViewContext.class);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static <T extends EMFFormsViewContext> EMFFormsViewContextFixture<T> create(Class<T> contextType) {
+		return create(contextType, () -> mock(VElement.class), () -> mock(EObject.class));
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static EMFFormsViewContextFixture<EMFFormsViewContext> create(
+		Supplier<? extends VElement> viewSupplier, Supplier<? extends EObject> domainModelSupplier) {
+
+		return create(EMFFormsViewContext.class, viewSupplier, domainModelSupplier);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static <T extends EMFFormsViewContext> EMFFormsViewContextFixture<T> create(Class<T> contextType,
+		Supplier<? extends VElement> viewSupplier, Supplier<? extends EObject> domainModelSupplier) {
+
+		return new EMFFormsViewContextFixture<>(contextType, viewSupplier, domainModelSupplier);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static EMFFormsViewContextFixture<EMFFormsViewContext> create(Object owner) {
+		return create(EMFFormsViewContext.class, owner);
+	}
+
+	/**
+	 * Create a new fixture instance.
+	 */
+	public static <T extends EMFFormsViewContext> EMFFormsViewContextFixture<T> create(Class<T> contextType,
+		Object owner) {
+
+		return new EMFFormsViewContextFixture<>(contextType, owner);
+	}
+
+	//
+	// Test fixture protocol
+	//
+
+	public final VElement getViewModel() {
+		return viewContext.getViewModel();
+	}
+
+	public final EObject getDomainModel() {
+		return viewContext.getDomainModel();
+	}
+
+	public final T getViewContext() {
+		return viewContext;
+	}
+
+	public final <S> S getService(Class<S> serviceType) {
+		return viewContext.getService(serviceType);
+	}
+
+	public final <S> void putService(Class<S> serviceType, S service) {
+		// This we get picked up by the mock view service
+		e4Context.set(serviceType, service);
+
+		initService(service);
+	}
+
+	private void initService(Object service) {
+		// ViewModelService requires "instantiation"
+		if (!instantiate(service, true)) {
+			instantiate(service, false);
+		}
+	}
+
+	private boolean instantiate(Object service, boolean withContext) {
+		final Method instantiate;
+		try {
+			if (withContext) {
+				instantiate = service.getClass().getMethod("instantiate", contextType);
+				instantiate.invoke(service, viewContext);
+				return true;
+			}
+			instantiate = service.getClass().getMethod("instantiate");
+			instantiate.invoke(service);
+			return true;
+		} catch (NoSuchMethodException | IllegalAccessException e) {
+			// These are normal when it's not a ViewModelService
+		} catch (SecurityException | IllegalArgumentException | InvocationTargetException e) {
+			// These are not normal, but we've made the effort and will let the test proceed
+			e4Context.get(ReportService.class).report(new AbstractReport(e));
+		}
+		return false;
+	}
+
+	public T createContext(String name, VElement viewModel, EObject domainModel) {
+		final T result = mock(contextType, name);
+
+		when(result.getService(ReportService.class)).thenReturn(mock(ReportService.class));
+		when(result.getService(argThat(not(IEclipseContext.class)))).thenAnswer(
+			invocation -> bestEffortService((Class<?>) invocation.getArguments()[0]));
+		when(result.getService(IEclipseContext.class)).thenReturn(e4Context);
+
+		when(result.getViewModel()).thenReturn(viewModel);
+		when(result.getDomainModel()).thenReturn(domainModel);
+
+		return result;
+	}
+
+	private <S> S bestEffortService(Class<S> serviceType) {
+		S result = serviceType.cast(lazyServices.get(serviceType));
+
+		if (result == null) {
+			result = e4Context.get(serviceType);
+			if (result != null) {
+				initService(result);
+				lazyServices.put(serviceType, result);
+			}
+		}
+
+		if (result == null) {
+			// Try the service manager
+			final EMFFormsViewServiceManager mgr = getEMFFormsViewServiceManager();
+
+			// These are de facto lazy and local to this mock
+			org.eclipse.emfforms.common.Optional<S> service = mgr.createLocalLazyService(serviceType,
+				viewContext);
+			if (!service.isPresent()) {
+				service = mgr.createLocalImmediateService(serviceType, viewContext);
+			}
+			if (service.isPresent()) {
+				result = service.get();
+				initService(result);
+				lazyServices.put(serviceType, result);
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * Get the view-model service manager, or a mock substitute, for delegation of
+	 * services via the factory OSGi components.
+	 *
+	 * @return the best-effort service manager
+	 */
+	private EMFFormsViewServiceManager getEMFFormsViewServiceManager() {
+		EMFFormsViewServiceManager result = (EMFFormsViewServiceManager) lazyServices
+			.get(EMFFormsViewServiceManager.class);
+		if (result == null) {
+			result = e4Context.get(EMFFormsViewServiceManager.class);
+			if (result != null) {
+				initService(result);
+			} else {
+				result = mock(EMFFormsViewServiceManager.class);
+			}
+
+			// Cache the result to avoid unbounded recursion
+			lazyServices.put(EMFFormsViewServiceManager.class, result);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Initialize the legacy services manager, which injects view-model services from
+	 * the extension point as service-factory OSGi components.
+	 */
+	private void initializeLegacyServices() {
+		final Object legacyServicesManager = e4Context
+			.get("org.eclipse.emf.ecp.view.spi.context.EMFFormsLegacyServicesManager");
+		if (legacyServicesManager != null) {
+			initService(legacyServicesManager);
+		}
+	}
+
+	public T createChildContext(VElement parentElement, String name,
+		VElement viewModel, EObject domainModel) {
+
+		final T result = createContext(name, viewModel, domainModel);
+
+		if (childContexts.add(result)) {
+			capturedListeners.forEach(safeRun(l -> l.childContextAdded(parentElement, result)));
+		}
+
+		return result;
+	}
+
+	private <V> Consumer<V> safeRun(Consumer<? super V> action) {
+		return input -> SafeRunner.run(() -> action.accept(input));
+	}
+
+	public void disposeChildContext(T childContext) {
+		if (childContexts.remove(childContext)) {
+			capturedListeners.forEach(safeRun(l -> l.childContextDisposed(childContext)));
+		}
+	}
+
+	private static <V> Supplier<V> fieldSupplier(Object owner,
+		Class<? extends Annotation> annotationType, Class<V> type) {
+
+		for (final Field next : owner.getClass().getDeclaredFields()) {
+			if (next.isAnnotationPresent(annotationType) && type.isAssignableFrom(type)) {
+				return () -> {
+					final boolean wasAccessible = next.isAccessible();
+					next.setAccessible(true);
+					try {
+						try {
+							return type.cast(next.get(owner));
+						} catch (final IllegalAccessException e) {
+							return null;
+						}
+					} finally {
+						next.setAccessible(wasAccessible);
+					}
+				};
+			}
+		}
+
+		return () -> null;
+	}
+
+	//
+	// Test lifecycle
+	//
+
+	@Override
+	protected void starting(Description description) {
+		final Bundle self = FrameworkUtil.getBundle(EMFFormsViewContextFixture.class);
+		e4Context = EclipseContextFactory.createServiceContext(self.getBundleContext());
+
+		viewContext = createContext("root", viewSupplier.get(), domainModelSupplier.get());
+
+		// Capture the context listeners of the reveal service to feed them context lifecycle events
+		doAnswer(invocation -> {
+			capturedListeners.add((EMFFormsContextListener) invocation.getArguments()[0]);
+			return null;
+		}).when(viewContext).registerEMFFormsContextListener(any());
+
+		initializeLegacyServices();
+	}
+
+	@Override
+	protected void finished(Description description) {
+		// Dispose any left-over child contexts
+		new ArrayList<>(childContexts).forEach(this::disposeChildContext);
+
+		// Dispose the root context. Defensive copy in case any removes itself
+		new ArrayList<>(capturedListeners).forEach(safeRun(EMFFormsContextListener::contextDispose));
+		capturedListeners.clear();
+
+		lazyServices.clear();
+		e4Context.dispose();
+
+		viewContext = null;
+	}
+
+	//
+	// Nested types
+	//
+
+	@Retention(RetentionPolicy.RUNTIME)
+	@Target(ElementType.FIELD)
+	public @interface ViewModel {
+		// Empty annotation
+	}
+
+	@Retention(RetentionPolicy.RUNTIME)
+	@Target(ElementType.FIELD)
+	public @interface DomainModel {
+		// Empty annotation
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFMocking.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFMocking.java
new file mode 100644
index 0000000..1892e4c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFMocking.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Field;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Utilities for injection of Mockito mocks with {@link EMock @EMock} fields
+ * and for <em>ad hoc</em> configuration of mocks for EMF models.
+ *
+ * @since 1.22
+ */
+public final class EMFMocking {
+
+	/**
+	 * Not instantiable by clients.
+	 */
+	private EMFMocking() {
+		super();
+	}
+
+	/**
+	 * Inject mocks into an {@code object}.
+	 *
+	 * @param object an object to inject
+	 */
+	public static void initEMocks(Object object) {
+		MockitoAnnotations.initMocks(object);
+
+		for (Class<?> classs = object.getClass(); classs != Object.class; classs = classs.getSuperclass()) {
+			try {
+				initEMocks(object, classs);
+			} catch (final IllegalAccessException e) {
+				e.printStackTrace();
+				fail(String.format("Failed to inject mocks in %s: %s", object, e.getMessage()));
+			}
+		}
+	}
+
+	public static <T extends EObject> T eMock(Class<T> type) {
+		return eMock(type, withESettings());
+	}
+
+	public static <T extends EObject> T eMock(Class<T> type, String name) {
+		return eMock(type, withESettings().name(name));
+	}
+
+	public static <T extends EObject> T eMock(Class<T> type, EMockSettings settings) {
+		return ((EMockSettingsImpl) settings).make(type);
+	}
+
+	public static EMockSettings withESettings() {
+		return new EMockSettingsImpl();
+	}
+
+	public static <T extends EObject> T eSetContainer(T mock, EObject container) {
+		when(mock.eContainer()).thenReturn(container);
+		when(((InternalEObject) mock).eInternalContainer()).thenReturn((InternalEObject) container);
+		return mock;
+	}
+
+	private static void initEMocks(Object testInstance, Class<?> testClass) throws IllegalAccessException {
+		for (final Field next : testClass.getDeclaredFields()) {
+			if (next.isAnnotationPresent(EMock.class)) {
+				if (!EObject.class.isAssignableFrom(next.getType())) {
+					throw new IllegalArgumentException("Cannot use @EMock annotation on field of non-EObject type"); //$NON-NLS-1$
+				}
+
+				inject(testInstance, next);
+			}
+		}
+	}
+
+	private static void inject(Object owner, Field field) throws IllegalAccessException {
+		final EMock emock = field.getAnnotation(EMock.class);
+		EMockSettings settings = withESettings();
+
+		if (!emock.name().trim().isEmpty()) {
+			settings = settings.name(emock.name().trim());
+		} else {
+			settings = settings.name(field.getName());
+		}
+		settings = settings.defaultAnswer(emock.answer().get());
+
+		final EObject mock = eMock(field.getType().asSubclass(EObject.class), settings);
+
+		final boolean wasAccessible = field.isAccessible();
+		field.setAccessible(true);
+
+		try {
+			field.set(owner, mock);
+		} finally {
+			field.setAccessible(wasAccessible);
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFMockingRunner.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFMockingRunner.java
new file mode 100644
index 0000000..e202406
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMFMockingRunner.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.InitializationError;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * A JUnit runner for injection of Mockito mocks with {@link EMock @EMock} fields.
+ *
+ * @since 1.22
+ */
+public class EMFMockingRunner extends BlockJUnit4ClassRunner {
+
+	/**
+	 * Initializes me.
+	 *
+	 * @param classs the test class to initialize
+	 * @throws InitializationError on any failure to initialize the test class
+	 */
+	public EMFMockingRunner(Class<?> classs) throws InitializationError {
+		super(classs);
+	}
+
+	@Override
+	protected Object createTest() throws Exception {
+		final Object result = super.createTest();
+
+		MockitoAnnotations.initMocks(result);
+
+		EMFMocking.initEMocks(result);
+
+		return result;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMock.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMock.java
new file mode 100644
index 0000000..fda6863
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMock.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import org.eclipse.emf.ecore.EObject;
+import org.mockito.Answers;
+import org.mockito.Mock;
+
+/**
+ * Analogue of the {@link Mock} annotation that indicates a mock of {@link EObject} type
+ * to be injected. It ensures that all of the interfaces expected by the EMF run-time are
+ * provided, so therefore it does not have the {@link Mock#extraInterfaces()} attribute as
+ * it would be unusual to mix in any other interfaces to an EMF model object.
+ *
+ * @since 1.22
+ */
+@Documented
+@Retention(RUNTIME)
+@Target(FIELD)
+public @interface EMock {
+
+	String name() default "";
+
+	Answers answer() default Answers.RETURNS_DEFAULTS;
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMockSettings.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMockSettings.java
new file mode 100644
index 0000000..4b6b9cd
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMockSettings.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import java.io.Serializable;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.mockito.MockSettings;
+import org.mockito.listeners.InvocationListener;
+import org.mockito.stubbing.Answer;
+
+/**
+ * Analogue of the {@link MockSettings} interface that configures a mock of {@link EObject} type.
+ * It ensures that all of the interfaces expected by the EMF run-time are
+ * provided, so therefore it does not have the {@link MockSettings#extraInterfaces(Class...)}
+ * settings as it would be unusual to mix in any other interfaces to an EMF model object.
+ * Also, {@link EObject}s are never {@link Serializable}, so that option is not supported.
+ *
+ * @since 1.22
+ * @see EMFMocking#eMock(Class, EMockSettings)
+ * @see EMFMocking#withESettings()
+ */
+public interface EMockSettings {
+	/**
+	 * Set a name for the mock. <strong>Note</strong> that mocks injected into fields with
+	 * the {@link EMock @EMock} annotation are automatically named according to the field name,
+	 * or else a name specified in the annotation.
+	 *
+	 * @param name the mock name
+	 * @return myself, for fluency
+	 *
+	 * @see MockSettings#name(String)
+	 */
+	EMockSettings name(String name);
+
+	/**
+	 * Configure a default answer for unstubbed methods.
+	 *
+	 * @param defaultAnswer the mock's default answer
+	 * @return myself, for fluency
+	 *
+	 * @see MockSettings#defaultAnswer(Answer)
+	 */
+	EMockSettings defaultAnswer(Answer<?> defaultAnswer);
+
+	/**
+	 * Enable verbose logging of interactions.
+	 *
+	 * @return myself, for fluency
+	 *
+	 * @see MockSettings#verboseLogging()
+	 */
+	EMockSettings verboseLogging();
+
+	/**
+	 * Add listeners listener to method invocations on the mock.
+	 *
+	 * @param listeners the listeners to add (none may be {@code null})
+	 * @return myself, for fluency
+	 *
+	 * @see MockSettings#invocationListeners(InvocationListener...)
+	 */
+	EMockSettings invocationListeners(InvocationListener... listeners);
+
+	/**
+	 * Set a contents list for the mock. This may be a writable list if the
+	 * test needs that.
+	 *
+	 * @param eContents a list to return from {@link EObject#eContents()}
+	 * @return myself, for fluency
+	 */
+	default EMockSettings eContents() {
+		return eContents(ECollections.emptyEList());
+	}
+
+	/**
+	 * Set an {@link EClass} list for the mock.
+	 *
+	 * @param eClass the {@link EClass} to return from {@link EObject#eClass()}
+	 * @return myself, for fluency
+	 */
+	EMockSettings eClass(EClass eClass);
+
+	/**
+	 * Set a contents list for the mock. This may be a writable list if the
+	 * test needs that.
+	 *
+	 * @param eContents a list to return from {@link EObject#eContents()}
+	 * @return myself, for fluency
+	 */
+	EMockSettings eContents(EList<? extends EObject> eContents);
+
+	/**
+	 * Set a container for the mock.
+	 *
+	 * @param eContainer an object to return from {@link EObject#eContainer()}
+	 * @return myself, for fluency
+	 */
+	EMockSettings eContainer(EObject eContainer);
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMockSettingsImpl.java b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMockSettingsImpl.java
new file mode 100644
index 0000000..693ab60
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/src/org/eclipse/emf/ecp/view/test/common/spi/EMockSettingsImpl.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.test.common.spi;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.impl.BasicNotifierImpl;
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+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.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData.EClassifierExtendedMetaData;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData.EStructuralFeatureExtendedMetaData;
+import org.mockito.MockSettings;
+import org.mockito.Mockito;
+import org.mockito.listeners.InvocationListener;
+import org.mockito.stubbing.Answer;
+
+/**
+ * Implementation of the EMF mock settings protocol.
+ *
+ * @since 1.22
+ */
+final class EMockSettingsImpl implements EMockSettings {
+
+	private final MockSettings settings = Mockito.withSettings();
+
+	private EClass eClass;
+	private EList<? extends EObject> eContents;
+	private EObject eContainer;
+
+	/**
+	 * Initializes me.
+	 */
+	EMockSettingsImpl() {
+		super();
+
+		settings.extraInterfaces(InternalEObject.class);
+	}
+
+	@Override
+	public EMockSettings name(String name) {
+		settings.name(name);
+		return this;
+	}
+
+	@Override
+	public EMockSettings defaultAnswer(Answer<?> defaultAnswer) {
+		settings.defaultAnswer(defaultAnswer);
+		return this;
+	}
+
+	@Override
+	public EMockSettings verboseLogging() {
+		settings.verboseLogging();
+		return null;
+	}
+
+	@Override
+	public EMockSettings invocationListeners(InvocationListener... listeners) {
+		settings.invocationListeners(listeners);
+		return this;
+	}
+
+	@Override
+	public EMockSettings eClass(EClass eClass) {
+		this.eClass = eClass;
+		return this;
+	}
+
+	@Override
+	public EMockSettings eContents(EList<? extends EObject> eContents) {
+		this.eContents = eContents;
+		return this;
+	}
+
+	@Override
+	public EMockSettings eContainer(EObject eContainer) {
+		this.eContainer = eContainer;
+		return this;
+	}
+
+	<E extends EObject> E make(Class<E> type) {
+		updateAdditionalInterfaces(type);
+		final E result = mock(type, settings);
+
+		EClass eClass = this.eClass;
+		if (eClass == null) {
+			eClass = guessEClass(type);
+		}
+		if (eClass != null) {
+			when(result.eClass()).thenReturn(eClass);
+		}
+
+		if (eContents != null) {
+			when(result.eContents()).thenReturn(wrap(eContents));
+		}
+		if (eContainer != null) {
+			EMFMocking.eSetContainer(result, eContainer);
+		}
+
+		// Many corners of the EMF framework and EMF Forms expect an adapter list
+		final EList<Adapter> adapterList = new BasicNotifierImpl.EAdapterList<>(result);
+		Mockito.when(result.eAdapters()).thenReturn(adapterList);
+
+		return result;
+	}
+
+	private <E> EList<E> wrap(List<? extends E> delegate) {
+		return delegate == ECollections.EMPTY_ELIST
+			? ECollections.emptyEList()
+			: ECollections.unmodifiableEList(delegate);
+	}
+
+	/**
+	 * Some EMF interfaces require additional internal-ish interfaces in their implementations.
+	 * For example, access to "extended metadata".
+	 *
+	 * @param type the type being mocked
+	 */
+	private void updateAdditionalInterfaces(Class<?> type) {
+		if (EClassifier.class.isAssignableFrom(type)) {
+			settings.extraInterfaces(InternalEObject.class, EClassifierExtendedMetaData.Holder.class);
+		} else if (EStructuralFeature.class.isAssignableFrom(type)) {
+			settings.extraInterfaces(InternalEObject.class, EStructuralFeatureExtendedMetaData.Holder.class);
+		}
+	}
+
+	private static EClass guessEClass(Class<? extends EObject> interfaceType) {
+		final String typeName = interfaceType.getName();
+		final String packageName = getPackageName(interfaceType);
+
+		for (final Object next : EPackage.Registry.INSTANCE.values()) {
+			final EPackage ePackage = next instanceof EPackage
+				? (EPackage) next
+				: ((EPackage.Descriptor) next).getEPackage();
+
+			if (ePackage == null) {
+				continue;
+			}
+
+			final Class<?> ePackageImplClass = ePackage.getClass();
+			final Class<?>[] interfaces = ePackageImplClass.getInterfaces();
+			for (final Class<?> iface : interfaces) {
+				if (EPackage.class.isAssignableFrom(iface) && iface != EPackage.class) {
+					// This is the package API interface
+					final String ifacePackageName = getPackageName(iface);
+					if (ifacePackageName.equals(packageName)) {
+						// Find the EClass whose interface name is 'typeName'
+						return ePackage.getEClassifiers().stream()
+							.filter(EClass.class::isInstance).map(EClass.class::cast)
+							.filter(ec -> typeName.equals(ec.getInstanceClassName()))
+							.findAny().orElse(null);
+					}
+				}
+			}
+		}
+
+		return null;
+	}
+
+	private static String getPackageName(Class<?> classs) {
+		final String className = classs.getName();
+		return className.substring(0, className.lastIndexOf('.'));
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.classpath b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.classpath
index eca7bdb..a2ddce6 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.classpath
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.classpath
@@ -1,7 +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="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/eclipse/emf/ecp/view/treemasterdetail/model/**"/>
+		</accessrules>
+	</classpathentry>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/All Tests for treemasterdetail.ui.swt.launch b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/All Tests for treemasterdetail.ui.swt.launch
new file mode 100644
index 0000000..04056a0
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/All Tests for treemasterdetail.ui.swt.launch
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/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.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/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.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.treemasterdetail.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.treemasterdetail.ui.swt.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*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.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@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@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.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator@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.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@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.test@default:false,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@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"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
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 bd83714..0095ed6 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,26 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the TreeMasterDetail Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.21.0",
- org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.22.0",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.common.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.common.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
  org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
  org.apache.log4j;bundle-version="[1.2.15,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test
 Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emf.ecp.view.test.common.spi;version="[1.22.0,1.23.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/TreeMasterDetailContextMenuViewModelService_PTest.launch b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/TreeMasterDetailContextMenuViewModelService_PTest.launch
deleted file mode 100644
index 7ba6e36..0000000
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/TreeMasterDetailContextMenuViewModelService_PTest.launch
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<setAttribute key="additional_plugins">
-<setEntry value="org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test:1.5.0.qualifier:default:true"/>
-</setAttribute>
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<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/pde-junit"/>
-<booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="ViewModelProjectTemplate,org.eclipse.emf.ecp.application.e3,org.eclipse.emf.ecp.application.e4,org.eclipse.emf.ecp.cdo.core,org.eclipse.emf.ecp.cdo.ui,org.eclipse.emf.ecp.common,org.eclipse.emf.ecp.common.ui,org.eclipse.emf.ecp.core,org.eclipse.emf.ecp.core.emffilter,org.eclipse.emf.ecp.core.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,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.edit.swt.test,org.eclipse.emf.ecp.editor.e3,org.eclipse.emf.ecp.emfstore.core,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.search,org.eclipse.emf.ecp.examplemodel.ui,org.eclipse.emf.ecp.explorereditorbridge,org.eclipse.emf.ecp.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util,org.eclipse.emf.ecp.ide.util.test,org.eclipse.emf.ecp.ide.view.service,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.model,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.rap.util,org.eclipse.emf.ecp.test.model,org.eclipse.emf.ecp.test.model.edit,org.eclipse.emf.ecp.ui,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.e4,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,org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.ui.view.editor.controls.test,org.eclipse.emf.ecp.ui.view.swt,org.eclipse.emf.ecp.ui.view.swt.di,org.eclipse.emf.ecp.ui.view.swt.test,org.eclipse.emf.ecp.ui.view.test,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.context,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.context.test,org.eclipse.emf.ecp.view.control.multireference,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.group.model,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.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.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.tooling,org.eclipse.emf.ecp.view.model,org.eclipse.emf.ecp.view.model.common,org.eclipse.emf.ecp.view.model.common.di,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.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.model.provider.generator,org.eclipse.emf.ecp.view.model.provider.xmi,org.eclipse.emf.ecp.view.model.provider.xmi.test,org.eclipse.emf.ecp.view.model.test,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.columnservice,org.eclipse.emf.ecp.view.table.editor,org.eclipse.emf.ecp.view.table.migrate,org.eclipse.emf.ecp.view.table.model,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.template.controls.swt,org.eclipse.emf.ecp.view.template.model,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.test.common,org.eclipse.emf.ecp.view.test.common.swt,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.ui.editor.test,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.unset.test,org.eclipse.emf.ecp.view.util.swt,org.eclipse.emf.ecp.view.validation,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.validation.test,org.eclipse.emf.ecp.view.vertical.model,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.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.examplemodel"/>
-<stringAttribute key="featureDefaultLocation" value="workspace"/>
-<stringAttribute key="featurePluginResolution" value="workspace"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/TreeMasterDetailContextMenuViewModelService_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.emf.ecp.view.treemasterdetail.ui.swt.test.TreeMasterDetailContextMenuViewModelService_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.emf.ecp.view.treemasterdetail.ui.swt.test"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<setAttribute key="selected_features">
-<setEntry value="org.eclipse.emf.ecp.target.feature:default"/>
-<setEntry value="org.eclipse.emf.ecp.view.template.feature:default"/>
-<setEntry value="org.eclipse.emf.ecp.view.treemasterdetail.feature:default"/>
-<setEntry value="org.eclipse.emf.ecp.viewmodel.feature:default"/>
-</setAttribute>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="true"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/TreeMasterDetailRenderer_PTest.launch b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/TreeMasterDetailRenderer_PTest.launch
deleted file mode 100644
index 7c2e608..0000000
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/TreeMasterDetailRenderer_PTest.launch
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/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.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailRenderer_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.emf.ecp.view.spi.treemasterdetail.ui.swt.TreeMasterDetailRenderer_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.emf.ecp.view.treemasterdetail.ui.swt.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.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.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.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.text@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.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.test@default:false,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"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
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 ec7506a..31433c9 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+  <version>1.22.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
   
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailRenderer_PTest.java
index 91078ee..80a4da2 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailRenderer_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 2.0
@@ -10,13 +10,17 @@
  *
  * Contributors:
  * eugen - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.sameInstance;
 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.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
@@ -29,6 +33,7 @@
 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.swt.masterdetail.DetailViewCache;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
 import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
 import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetailFactory;
@@ -43,10 +48,12 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.MenuListener;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Shell;
@@ -86,9 +93,15 @@
 		tmd.setDetailView(detailView);
 
 		final League domainModel = BowlingFactory.eINSTANCE.createLeague();
-		final Player player = BowlingFactory.eINSTANCE.createPlayer();
+		Player player = BowlingFactory.eINSTANCE.createPlayer();
+		player.setName("Player 1"); //$NON-NLS-1$
 		domainModel.getPlayers().add(player);
+		player = BowlingFactory.eINSTANCE.createPlayer();
+		player.setName("Player 2"); //$NON-NLS-1$
+		domainModel.getPlayers().add(player);
+
 		context = new ViewModelContextImpl(tmd, domainModel);
+		context.putContextValue(DetailViewCache.DETAIL_VIEW_CACHE_SIZE, 5);
 		renderer = new TreeMasterDetailSWTRenderer(tmd, context, reportService);
 		renderer.init();
 
@@ -211,27 +224,28 @@
 		// too many intermediate composites
 		final Composite content = Composite.class.cast(
 			Composite.class.cast(
-				detailContentComposite.getChildren()[0])
-				.getChildren()[0]);
+				detailContentComposite.getChildren()[0]));
+		final StackLayout stack = (StackLayout) content.getLayout();
+		final Composite details = (Composite) stack.topControl;
 		final StringBuilder sb = new StringBuilder();
-		sb.append(String.format("Instead of 3 Elements of Control found %1$s controls.", content.getChildren().length)); //$NON-NLS-1$
+		sb.append(String.format("Instead of 3 Elements of Control found %1$s controls.", details.getChildren().length)); //$NON-NLS-1$
 		sb.append("The controls are:"); //$NON-NLS-1$
-		for (final Control c : content.getChildren()) {
+		for (final Control c : details.getChildren()) {
 			sb.append(String.format("Control: %1$s.", c)); //$NON-NLS-1$
 		}
 		assertEquals(sb.toString(), 3,
-			content.getChildren().length);
+			details.getChildren().length);
 
-		assertTrue(Label.class.isInstance(content.getChildren()[0]));
-		final Label label = Label.class.cast(content.getChildren()[0]);
+		assertTrue(Label.class.isInstance(details.getChildren()[0]));
+		final Label label = Label.class.cast(details.getChildren()[0]);
 		assertEquals("Name", label.getText()); //$NON-NLS-1$
 
-		assertTrue(Label.class.isInstance(content.getChildren()[1]));
-		final Label validation = Label.class.cast(content.getChildren()[1]);
+		assertTrue(Label.class.isInstance(details.getChildren()[1]));
+		final Label validation = Label.class.cast(details.getChildren()[1]);
 		assertNull(validation.getImage());
 
-		assertTrue(Composite.class.isInstance(content.getChildren()[2]));
-		final Composite control = Composite.class.cast(content.getChildren()[2]);
+		assertTrue(Composite.class.isInstance(details.getChildren()[2]));
+		final Composite control = Composite.class.cast(details.getChildren()[2]);
 		assertEquals(1, control.getChildren().length);
 
 		assertTrue(Text.class.isInstance(control.getChildren()[0]));
@@ -252,7 +266,8 @@
 		final Control[] content = getDetailContent(detail);
 		assertFalse(content[2].isEnabled());
 
-		assertContextMenu(tree, 0);
+		// Read-only tree should not have any context menu
+		assertNull(tree.getMenu());
 	}
 
 	@Test
@@ -269,6 +284,35 @@
 		assertContextMenu(tree, 1);
 	}
 
+	/**
+	 * Verify that a cached detail view rendering is reused.
+	 */
+	@SuppressWarnings("nls")
+	@Test
+	public void detailViewRenderingReused() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		final Control renderResult = render();
+		final Tree tree = getTree(renderResult);
+		final TreeItem leagueItem = tree.getItem(0);
+		leagueItem.setExpanded(true);
+		final TreeItem player1Item = leagueItem.getItem(0);
+		final TreeItem player2Item = leagueItem.getItem(1);
+
+		select(tree, player1Item);
+
+		// Get the player's detail
+		final Composite detail = getDetail(renderResult);
+		final Text nameText = (Text) getDetailContent(detail)[2];
+		assertThat(nameText.getText(), is("Player 1"));
+
+		// Change the selection to another player
+		select(tree, player2Item);
+
+		// Verify the updates
+		assertThat(getDetail(renderResult), sameInstance(detail));
+		assertThat(getDetailContent(detail)[2], sameInstance(nameText));
+		assertThat(nameText.getText(), is("Player 2"));
+	}
+
 	@Test
 	public void tmd_initially_disabled() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		context.getViewModel().setEnabled(false);
@@ -317,6 +361,16 @@
 		return renderResult;
 	}
 
+	private void select(Tree tree, TreeItem item) {
+		tree.setSelection(item);
+		final Event selection = new Event();
+		selection.display = tree.getDisplay();
+		selection.widget = tree;
+		selection.item = item;
+		selection.type = SWT.Selection;
+		tree.notifyListeners(SWT.Selection, selection);
+	}
+
 	private Tree getTree(Control renderResult) {
 		final Composite resultComposite = Composite.class.cast(renderResult);
 		final Composite bottomComposite = Composite.class.cast(resultComposite.getChildren()[1]);
@@ -337,10 +391,9 @@
 	}
 
 	private Control[] getDetailContent(Composite detailContentComposite) {
-		final Composite content = Composite.class.cast(
-			Composite.class.cast(
-				detailContentComposite.getChildren()[0])
-				.getChildren()[0]);
+		final Composite detailStackComposite = (Composite) detailContentComposite.getChildren()[0];
+		final StackLayout stackLayout = (StackLayout) detailStackComposite.getLayout();
+		final Composite content = (Composite) stackLayout.topControl;
 		final Label label = Label.class.cast(content.getChildren()[0]);
 		final Label validation = Label.class.cast(content.getChildren()[1]);
 		final Composite control = Composite.class.cast(content.getChildren()[2]);
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/internal/TreeRevealProvider_PTest.java b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/internal/TreeRevealProvider_PTest.java
new file mode 100644
index 0000000..308e794
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/internal/TreeRevealProvider_PTest.java
@@ -0,0 +1,314 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;
+
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.eMock;
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.withESettings;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyVararg;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.util.URI;
+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.ETypedElement;
+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.ResourceImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+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.ViewModelService;
+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.swt.services.DefaultSelectionProviderService;
+import org.eclipse.emf.ecp.view.spi.swt.services.ECPSelectionProviderService;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+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.treemasterdetail.model.VTreeMasterDetail;
+import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetailFactory;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+
+/**
+ * Tests covering the {@link TreeRevealProvider} class.
+ */
+@SuppressWarnings("nls")
+public class TreeRevealProvider_PTest {
+
+	@ViewModel
+	private final VView viewModel = VViewFactory.eINSTANCE.createView();
+
+	@DomainModel
+	private EObject rootObject;
+
+	private EObject class1;
+	private EObject class2;
+
+	private EObject att1;
+	private EObject att2;
+
+	private EObject detailObj;
+
+	private VTreeMasterDetail treeMD;
+
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<ViewModelContext> fixture = EMFFormsRevealServiceFixture.create(
+		ViewModelContext.class, this);
+
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public TreeRevealProvider_PTest() {
+		super();
+
+		createDomainModel();
+	}
+
+	/**
+	 * Test revealing an object that is presented and selectable in the tree.
+	 */
+	@Test
+	public void revealInTree() {
+		final Runnable reveal = mock(Runnable.class);
+
+		fixture.addRevealProvider(new ViewRevealer(reveal));
+
+		render();
+
+		fixture.reveal(att1);
+
+		SWTTestUtil.waitForUIThread();
+
+		verify(reveal).run();
+
+		final Tree tree = SWTTestUtil.findControl(shell, 0, Tree.class);
+		final TreeItem[] selection = tree.getSelection();
+		assertThat("No tree selection", selection.length, is(1));
+		assertThat("Tree selection incorrect", selection[0].getData(), is(att1));
+	}
+
+	/**
+	 * Test revealing an object that is presented only in the detail view of an object
+	 * that is selectable in the tree.
+	 */
+	@Test
+	public void revealInDetail() {
+		final Runnable reveal = mock(Runnable.class);
+
+		fixture.addRevealProvider(new ViewRevealer(mock(Runnable.class)));
+		fixture.addRevealProvider(new DetailRevealer(reveal));
+
+		render();
+
+		fixture.reveal(detailObj);
+
+		SWTTestUtil.waitForUIThread();
+
+		verify(reveal).run();
+
+		final Tree tree = SWTTestUtil.findControl(shell, 0, Tree.class);
+		final TreeItem[] selection = tree.getSelection();
+		assertThat("No tree selection", selection.length, is(1));
+		assertThat("Tree selection incorrect", selection[0].getData(), is(att2));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createViewModel() {
+		treeMD = VTreeMasterDetailFactory.eINSTANCE.createTreeMasterDetail();
+		viewModel.getChildren().add(treeMD);
+
+		// The renderer needs this
+		fixture.putService(ECPSelectionProviderService.class, new DefaultSelectionProviderService());
+	}
+
+	private void createDomainModel() {
+		// Tiny dynamic schema to make sure that we get a generated view model
+		// for the details (for predictability)
+		final EPackage pkg = EcoreFactory.eINSTANCE.createEPackage();
+		pkg.setName("pkg");
+		pkg.setNsPrefix("pkg");
+		pkg.setNsURI("fake:pkg");
+		final EClass namedElement = EcoreFactory.eINSTANCE.createEClass();
+		namedElement.setName("NamedElement");
+		pkg.getEClassifiers().add(namedElement);
+		final EAttribute name = EcoreFactory.eINSTANCE.createEAttribute();
+		name.setName("name");
+		name.setEType(EcorePackage.Literals.ESTRING);
+		namedElement.getEStructuralFeatures().add(name);
+		final EReference children = EcoreFactory.eINSTANCE.createEReference();
+		children.setName("children");
+		children.setEType(namedElement);
+		children.setContainment(true);
+		children.setLowerBound(0);
+		children.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
+		namedElement.getEStructuralFeatures().add(children);
+
+		// Create the model that will show in the tree
+		rootObject = EcoreUtil.create(namedElement);
+		rootObject.eSet(name, "pkg");
+		class1 = EcoreUtil.create(namedElement);
+		class1.eSet(name, "Class1");
+		class2 = EcoreUtil.create(namedElement);
+		class2.eSet(name, "Class2");
+		rootObject.eSet(children, Arrays.asList(class1, class2));
+
+		att1 = EcoreUtil.create(namedElement);
+		att1.eSet(name, "att1");
+		att2 = EcoreUtil.create(namedElement);
+		att2.eSet(name, "att2");
+		class2.eSet(children, Arrays.asList(att1, att2));
+
+		// An object that isn't presented in the tree but as a detail
+		// of an object that is in the tree
+		detailObj = eMock(EObject.class, withESettings().eContainer(att2));
+
+		// The detail rendeering for featurees wants to find types in the resource set
+		final Resource res = new ResourceImpl(URI.createURI("fake:resource"));
+		res.getContents().add(rootObject);
+		new AdapterFactoryEditingDomain(new ReflectiveItemProviderAdapterFactory(),
+			new BasicCommandStack()).getResourceSet().getResources().add(res);
+	}
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+	}
+
+	@Before
+	public void mockChildContexts() {
+		when(fixture.getViewContext().getChildContext(any(), any(), any(), (ViewModelService[]) anyVararg()))
+			.then(invocation -> {
+				final ViewModelContext result = fixture.createChildContext((VElement) invocation.getArguments()[1],
+					"child",
+					(VView) invocation.getArguments()[2],
+					(EObject) invocation.getArguments()[0]);
+				when(result.getParentContext()).thenReturn((ViewModelContext) invocation.getMock());
+				return result;
+			});
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	void render() {
+		SWTViewTestHelper.render(fixture.getViewContext(), shell);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * A high-bidding reveal provider to make sure that we drill into the view
+	 * to find the tree, regardless of other possible contributions in the
+	 * current configuration.
+	 */
+	private final class ViewRevealer implements EMFFormsRevealProvider {
+
+		private final Runnable reveal;
+
+		ViewRevealer(Runnable reveal) {
+			super();
+
+			this.reveal = reveal;
+		}
+
+		@Bid
+		public Double bid(VView view) {
+			return view == viewModel ? Double.MAX_VALUE : null;
+		}
+
+		@Create
+		public RevealStep create(VView view, EObject model, RevealHelper helper) {
+			return view == viewModel
+				? helper.drillDown(this)
+				: RevealStep.fail();
+		}
+
+		@Reveal
+		private RevealStep drillDown(VView view, EObject model) {
+			return RevealStep.reveal(view, model, reveal);
+		}
+	}
+
+	/**
+	 * A high-bidding reveal provider to mock revealing the detail object
+	 * that is not presented in the tree.
+	 */
+	private final class DetailRevealer implements EMFFormsRevealProvider {
+
+		private final Runnable reveal;
+
+		DetailRevealer(Runnable reveal) {
+			super();
+
+			this.reveal = reveal;
+		}
+
+		@Bid
+		public Double bid(VView view, EObject object) {
+			// The detail is a generated view
+			return view != viewModel && object == detailObj ? Double.MAX_VALUE : null;
+		}
+
+		@Create
+		public RevealStep create(VView view, EObject model) {
+			return RevealStep.reveal(view, model, reveal);
+		}
+
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/AllTests.java
new file mode 100644
index 0000000..eb39038
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/AllTests.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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;
+
+import org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt.TreeMasterDetailRenderer_PTest;
+import org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.TreeRevealProvider_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Suite of all tests in the bundle.
+ */
+@RunWith(Suite.class)
+@SuiteClasses({
+	TreeMasterDetailRenderer_PTest.class,
+	TreeMasterDetailContextMenuViewModelService_PTest.class,
+	TreeRevealProvider_PTest.class,
+})
+public class AllTests {
+
+	/**
+	 * Initializes me.
+	 */
+	public AllTests() {
+		// Specification is in the annotations
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/TreeMasterDetailContextMenuViewModelService_PTest.java b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/TreeMasterDetailContextMenuViewModelService_PTest.java
index 555db3d..7511c16 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/TreeMasterDetailContextMenuViewModelService_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/src/org/eclipse/emf/ecp/view/treemasterdetail/ui/swt/test/TreeMasterDetailContextMenuViewModelService_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 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  * EclipseSource Munich - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;
 
@@ -19,6 +20,7 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
 import org.eclipse.emf.ecp.view.internal.context.ViewModelContextImpl;
@@ -33,7 +35,9 @@
 import org.eclipse.emf.emfstore.bowling.Player;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestRule;
 
 /**
  * @author Alexandra Buzila
@@ -48,6 +52,9 @@
 	private Player player;
 	private CountDownLatch latch;
 
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
 	@Before
 	public void createDomainObject() {
 		player = BowlingFactory.eINSTANCE.createPlayer();
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cc989fc..4a118ba 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.validation.test;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.validation.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.util;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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/TreeMasterDetailValidation.launch b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/TreeMasterDetailValidation.launch
index a993fdd..8dc88b5 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/TreeMasterDetailValidation.launch
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/TreeMasterDetailValidation.launch
@@ -27,9 +27,10 @@
 <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/java-8-openjdk-amd64"/>
+<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.treemasterdetail.validation.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.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.ecp.view.treemasterdetail.validation.test"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
 <stringAttribute key="pde.version" value="3.3"/>
@@ -43,8 +44,8 @@
 <setEntry value="org.eclipse.emf.ecp.view.validation.initial.feature:default"/>
 <setEntry value="org.eclipse.emf.ecp.viewmodel.feature:default"/>
 </setAttribute>
-<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.9.1.v20180313-1559@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.9.1.v20180227-1645@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.xmlgraphics@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@default:default,org.eclipse.core.expressions@default:default,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.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.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.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@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.junit@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.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.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.rule@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.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.test@default:false,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.rap.edit.ui.minimal@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.domainexpander.default@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.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"/>
+<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.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@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.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.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.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.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.ui.forms@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.junit@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.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.label.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.rule@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.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.test@default:false,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.rap.edit.ui.minimal@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.domainexpander.default@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.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@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.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.treemasterdetail.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/pom.xml
index 240a11f..b9bd467 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.ui.editor.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.ui.editor.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.ui.editor.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.ui.editor.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 743b3b9..237e01d 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.21.0.qualifier
+Bundle-Version: 1.22.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.21.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.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.ui.editor.test;version="1.22.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.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="1.4.1",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.ui;bundle-version="3.105.0",
- org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.dynamictree.model.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.view.model.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.22.0,1.23.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 68c4b23..79a7c62 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.unset.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.unset.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 812dafd..ed682cd 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.unset.test;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.unset.test;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.unset;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.unset;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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 0228998..8616302 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.validation.bean.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5c1207a..34d81c1 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.21.0.qualifier
+Bundle-Version: 1.22.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
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.validation.bean.default;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.validation.bean.default;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: car;version="1.21.0";x-internal:=true,
- car.impl;version="1.21.0";x-internal:=true,
- car.util;version="1.21.0";x-internal:=true,
- org.eclipse.emf.ecp.view.validation.bean.test;version="1.21.0";x-internal:=true
+Export-Package: car;version="1.22.0";x-internal:=true,
+ car.impl;version="1.22.0";x-internal:=true,
+ car.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.validation.bean.test;version="1.22.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 d139cf5..3b2e1e8 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.validation.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/AllValidationTests.launch b/tests/org.eclipse.emf.ecp.view.validation.test/AllValidationTests.launch
index 485d7a7..6c99653 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/AllValidationTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/AllValidationTests.launch
@@ -33,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.9.1.v20180313-1559@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.9.1.v20180227-1645@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.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.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@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.model.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.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.0.v200806040011@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.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.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.edit.test@default:false,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.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model.edit@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.validation@default:default,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.treemasterdetail.ui.swt@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.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.tests@default:false,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.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.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.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.core.di@default:default,org.eclipse.emfforms.swt.core.tests@default:false,org.eclipse.emfforms.swt.core@default:default@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,javax.servlet@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.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@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@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.model.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.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.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.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.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator@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.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.0.v200806040011@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.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.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.edit.test@default:false,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.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model.edit@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.validation@default:default,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.treemasterdetail.ui.swt@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.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.tests@default:false,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.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.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.segments.index@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.editor@default:default,org.eclipse.emfforms.localization.tests@default:false,org.eclipse.emfforms.localization@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@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.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.validation.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.validation.test/META-INF/MANIFEST.MF
index 6b3589d..90f9838 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,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.validation;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.validation.test;version="1.21.0",
- org.eclipse.emf.ecp.view.validation.test.model;version="1.21.0",
- org.eclipse.emf.ecp.view.validation.test.model.impl;version="1.21.0",
- org.eclipse.emf.ecp.view.validation.test.model.util;version="1.21.0"
+Export-Package: org.eclipse.emf.ecp.view.validation.test;version="1.22.0",
+ org.eclipse.emf.ecp.view.validation.test.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.validation.test.model.impl;version="1.22.0",
+ org.eclipse.emf.ecp.view.validation.test.model.util;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.prevalidation;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.prevalidation;bundle-version="[1.22.0,1.23.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
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 2215b70..26eb6da 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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/ViewValidation_PTest.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ViewValidation_PTest.java
index 05eec4e..84e1710 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ViewValidation_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ViewValidation_PTest.java
@@ -10,25 +10,32 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bug 545686
+ * Christian W. Damus - bugs 545686, 548761
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test;
 
 import static java.util.stream.Collectors.toList;
 import static org.eclipse.emf.ecp.view.spi.validation.ValidationServiceConstants.PROPAGATION_LIMIT_KEY;
+import static org.hamcrest.CoreMatchers.everyItem;
+import static org.hamcrest.CoreMatchers.hasItem;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
@@ -51,6 +58,7 @@
 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.spi.validation.ValidationUpdateListener;
 import org.eclipse.emf.ecp.view.spi.validation.ViewValidationListener;
 import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
 import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
@@ -68,6 +76,8 @@
 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.hamcrest.CustomTypeSafeMatcher;
+import org.hamcrest.Matcher;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -96,6 +106,24 @@
 		defaultRealm.dispose();
 	}
 
+	static Matcher<Diagnostic> isOK() {
+		return new CustomTypeSafeMatcher<Diagnostic>("is OK") {
+			@Override
+			protected boolean matchesSafely(Diagnostic item) {
+				return item.getSeverity() == Diagnostic.OK;
+			}
+		};
+	}
+
+	static Matcher<Diagnostic> isError() {
+		return new CustomTypeSafeMatcher<Diagnostic>("is error") {
+			@Override
+			protected boolean matchesSafely(Diagnostic item) {
+				return item.getSeverity() == Diagnostic.ERROR;
+			}
+		};
+	}
+
 	//
 	// Tests
 	//
@@ -1741,6 +1769,76 @@
 		assertEquals("Severity of control must be Error", Diagnostic.ERROR, lastResult.iterator().next().getSeverity());
 	}
 
+	@Test
+	public void testIncrementalUpdateListener() throws InterruptedException {
+		final Writer writer = TestFactory.eINSTANCE.createWriter();
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control
+			.setDomainModelReference(
+				getVFeaturePathDomainModelReference(TestPackage.eINSTANCE.getWriter_FirstName()));
+
+		final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(control, writer);
+
+		final BlockingQueue<Collection<Diagnostic>> update = new ArrayBlockingQueue<>(1);
+
+		final ValidationUpdateListener listener = diagnostics -> {
+			try {
+				update.offer(diagnostics, 1L, TimeUnit.SECONDS);
+			} catch (final InterruptedException e) {
+				e.printStackTrace();
+				fail("Interrupted");
+			}
+		};
+
+		final ValidationService service = vmc.getService(ValidationService.class);
+		ValidationUpdateListener.register(service, listener);
+
+		// Initial validation
+		service.validate(Collections.singleton(writer));
+
+		Collection<Diagnostic> diagnostics = update.poll(1L, TimeUnit.SECONDS);
+		assertThat("No error found", diagnostics, hasItem(isError()));
+		assertThat("No OKs found", diagnostics, hasItem(isOK()));
+
+		writer.setFirstName("Hans");
+		diagnostics = update.poll(1L, TimeUnit.SECONDS);
+		assertThat("Nothing reported", diagnostics.isEmpty(), is(false));
+		assertThat("Previously reported problems not cleared", diagnostics, everyItem(isOK()));
+
+		writer.setFirstName("");
+		diagnostics = update.poll(1L, TimeUnit.SECONDS);
+		assertThat("No error found", diagnostics, hasItem(isError()));
+		assertThat("No OKs found", diagnostics, hasItem(isOK()));
+	}
+
+	@Test
+	public void incrementalUpdateUnmodifiable() throws InterruptedException {
+		final Writer writer = TestFactory.eINSTANCE.createWriter();
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control
+			.setDomainModelReference(
+				getVFeaturePathDomainModelReference(TestPackage.eINSTANCE.getWriter_FirstName()));
+
+		final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(control, writer);
+
+		final ValidationUpdateListener listener = diagnostics -> {
+			try {
+				final Iterator<?> iter = diagnostics.iterator();
+				iter.next();
+				iter.remove();
+				fail("Should have thrown on attempt to remove from entry set");
+			} catch (final UnsupportedOperationException e) {
+				// Success
+			}
+		};
+
+		final ValidationService service = vmc.getService(ValidationService.class);
+		ValidationUpdateListener.register(service, listener);
+
+		// validate
+		service.validate(Collections.singleton(writer));
+	}
+
 	//
 	// Nested types
 	//
diff --git a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e58bc7d..cbf9f7d 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.vertical.ui.swt.test;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.vertical.ui.swt.test;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.jface;bundle-version="3.8.102",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.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 da55e43..541cb8b 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.viewproxy.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.viewproxy.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emf.ecp.view.viewproxy.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emf.ecp.view.viewproxy.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d1f7000..051b2ba 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.21.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.21.0",
- org.eclipse.emf.ecp.view.viewproxy.tests;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.22.0",
+ org.eclipse.emf.ecp.view.viewproxy.tests;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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 a006715..956024b 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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 f758b09..503e926 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.workspace.ui.rap.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.workspace.ui.rap.test;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
- org.eclipse.emf.ecp.workspace.core;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap;version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.core;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.22.0,1.23.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 6630349..6a1bd78 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bcd8ecd..78047f8 100644
--- a/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Locale Tests
 Bundle-SymbolicName: org.eclipse.emfforms.common.tests;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.common;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.common.sort;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.common.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.common.locale;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.common.validation;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.common;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.common.sort;version="1.22.0",
+ org.eclipse.emfforms.common.tests;version="1.22.0",
+ org.eclipse.emfforms.spi.common.locale;version="1.22.0",
+ org.eclipse.emfforms.spi.common.validation;version="1.22.0"
 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.21.0,1.22.0)",
- org.eclipse.emf.edit;bundle-version="[2.14.0,3.0.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.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 740e51a..565e7aa 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.common.validation.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.common.validation.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.common.validation.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.common.validation.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3b0088a..7b02454 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Common Validation Tests
 Bundle-SymbolicName: org.eclipse.emfforms.common.validation.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.common.validation.tests;version="1.21.0"
+Fragment-Host: org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.common.validation.tests;version="1.22.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)",
diff --git a/tests/org.eclipse.emfforms.common.validation.tests/pom.xml b/tests/org.eclipse.emfforms.common.validation.tests/pom.xml
index 95b52a9..42d8b62 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 6273cca..0c6fdbc 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.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.bazaar;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.bazaar.internal;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.bazaar.internal;version="1.22.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.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.21.0,1.22.0)",
+ org.eclipse.e4.core.contexts;version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.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 d45e086..b94b4ba 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.services.databinding.featurepath.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 3347189..7d51c14 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.databinding.featurepath;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.featurepath;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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 e7bfdc4..ca46ade 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cf36d82..8784ae3 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Converter Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.index.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.index.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.databinding.index;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.index.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.index;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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
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 6a19bba..2d3cb92 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a6c9545..8512a97 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Databinding Services Integration Test
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.integrationtest
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.core.services.databinding.integrationtest;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.databinding.integrationtest;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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
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 e620b96..9e1d85a 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 1c1d59d..6522ace 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.keyattribute;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.keyattribute.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.keyattribute;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.keyattribute.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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 ff531c3..73e98b1 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 5017434..3ceb70a 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Converter Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.mapping.tests
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.mapping.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.mapping.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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
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 b266d24..4b77e79 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f56a5dc..fedab3b 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.core.services.databinding.testmodel.test.model;version="1.21.0",
- org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.databinding.testmodel.test.model;version="1.22.0",
+ org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;version="1.22.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 ce1ac07..ef77f3b 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.datatemplate.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 966f721..f81881b 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Service Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.datatemplate.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.datatemplate;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emfforms.core.services.datatemplate;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.core.services.datatemplate.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.core.services.datatemplate.test.model.audit;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.core.services.datatemplate.test.model.audit.impl;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.core.services.datatemplate.test.model.audit.util;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.datatemplate;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.datatemplate.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.datatemplate.test.model.audit;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.datatemplate.test.model.audit.impl;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.datatemplate.test.model.audit.util;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.datatemplate;version="1.22.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)",
@@ -19,7 +19,7 @@
  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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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
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 39efb54..7b35de5 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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/BlankTemplateProvider_PTest.java b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_PTest.java
index ed16e6f..ad25c56 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_PTest.java
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_PTest.java
@@ -42,7 +42,7 @@
 import org.eclipse.emfforms.bazaar.Bid;
 import org.eclipse.emfforms.bazaar.Create;
 import org.eclipse.emfforms.datatemplate.Template;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.CustomTypeSafeMatcher;
@@ -60,7 +60,7 @@
  * @author Lucas Koehler
  *
  */
-@SuppressWarnings({ "restriction", "nls" })
+@SuppressWarnings({ "nls" })
 public class BlankTemplateProvider_PTest {
 
 	private BlankTemplateProvider provider;
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_Test.java b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_Test.java
index e6dedcb..a7561cc 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_Test.java
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/BlankTemplateProvider_Test.java
@@ -30,7 +30,7 @@
 import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.User;
 import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.UserGroup;
 import org.eclipse.emfforms.datatemplate.Template;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.junit.Before;
 import org.junit.Test;
@@ -45,7 +45,6 @@
  * @author Lucas Koehler
  *
  */
-@SuppressWarnings("restriction")
 public class BlankTemplateProvider_Test {
 
 	private BlankTemplateProvider provider;
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8f51078..4ea4ef9 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default Domain Expander Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.default.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.defaultheuristic.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.defaultheuristic.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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
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 ded1045..dc49ca3 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c36a4b7..2e0c05a 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Expander Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.index.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.index.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.index.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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
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 0ef1532..7921f3a 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 0d555da..1a4b75e 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.keyattribute;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.keyattribute;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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 6222d19..6b35244 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 21168a9..437266a 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.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.mapping.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.mapping.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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 b65a3c2..89518a7 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/AllIntegrationTests core.services.emf.launch b/tests/org.eclipse.emfforms.core.services.emf.tests/AllIntegrationTests core.services.emf.launch
index ae74adf..d7232d4 100644
--- a/tests/org.eclipse.emfforms.core.services.emf.tests/AllIntegrationTests core.services.emf.launch
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/AllIntegrationTests core.services.emf.launch
@@ -27,6 +27,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.core.services.emf.tests.AllIntegrationTests"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -250,7 +251,7 @@
 <setEntry value="org.eclipse.swtbot.forms:default"/>
 <setEntry value="org.eclipse.swtbot:default"/>
 </setAttribute>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.felix.scr@1:true,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding*1.7.0.v20180827-2028@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding@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.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*1.3.0.v20180420-1519@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@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@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.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.test.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
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 1467d88..6a6769e 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Service EMF Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.emf.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.emf;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.emf.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.databinding;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.label;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.emf;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.emf.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.label;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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
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 f60ea11..0cf2b85 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_ITest.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_ITest.java
index d53567c..e5705ac 100644
--- a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_ITest.java
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_ITest.java
@@ -31,7 +31,8 @@
 import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_Test.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_Test.java
index 189e385..1423512 100644
--- a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_Test.java
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_Test.java
@@ -34,7 +34,8 @@
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emfforms.internal.core.services.label.BundleResolver.NoBundleFoundException;
+import org.eclipse.emfforms.spi.common.BundleResolver;
+import org.eclipse.emfforms.spi.common.BundleResolver.NoBundleFoundException;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
diff --git a/tests/org.eclipse.emfforms.core.services.legacy.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.legacy.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.legacy.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.legacy.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d274a16..7b4da9d 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.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.legacy;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.legacy.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.legacy;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.legacy.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.legacy;version="1.22.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)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.legacy.tests
-Import-Package: org.eclipse.emfforms.common;version="[1.21.0,1.22.0)",
+Import-Package: org.eclipse.emfforms.common;version="[1.22.0,1.23.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 40e088a..ff878e3 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 f73615d..9707c60 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Mapping Provider Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.table.panel.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.22.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)"
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 28eac9c..9e33d57 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 d2a0ae4..771749e 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Mapping Provider Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.table.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.mappingprovider.table;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.mappingprovider.table;version="1.22.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)"
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 a000fa0..f8b3dd5 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ca89faa..485292c 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,13 +2,13 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.featurepath.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.featurepath.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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
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 1b182ff..fe3fc7b 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/core/services/segments/featurepath/test/AllTests.java b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/core/services/segments/featurepath/test/AllTests.java
index 195609d..72807d2 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/core/services/segments/featurepath/test/AllTests.java
+++ b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/core/services/segments/featurepath/test/AllTests.java
@@ -13,6 +13,7 @@
  ******************************************************************************/
 package org.eclipse.emfforms.core.services.segments.featurepath.test;
 
+import org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureDmrToRootEClassConverter_Test;
 import org.eclipse.emfforms.internal.core.services.segments.featurepath.FeaturePathDmrSegmentGenerator_Test;
 import org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureSegmentConverter_Test;
 import org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureSegmentExpander_Test;
@@ -29,7 +30,8 @@
  */
 @RunWith(Suite.class)
 @SuiteClasses({ FeaturePathDmrSegmentGenerator_Test.class, FeatureSegmentConverter_Test.class,
-	FeatureSegmentExpander_Test.class, FeatureSegmentStructuralChangeTester_Test.class })
+	FeatureSegmentExpander_Test.class, FeatureSegmentStructuralChangeTester_Test.class,
+	FeatureDmrToRootEClassConverter_Test.class })
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/internal/core/services/segments/featurepath/FeatureDmrToRootEClassConverter_Test.java b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/internal/core/services/segments/featurepath/FeatureDmrToRootEClassConverter_Test.java
new file mode 100644
index 0000000..d6530f1
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/src/org/eclipse/emfforms/internal/core/services/segments/featurepath/FeatureDmrToRootEClassConverter_Test.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments.featurepath;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+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.VViewFactory;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link FeatureDmrToRootEClassConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class FeatureDmrToRootEClassConverter_Test {
+
+	private FeatureDmrToRootEClassConverter converter;
+	private VFeaturePathDomainModelReference featureDmr;
+
+	@Before
+	public void setUp() {
+		converter = new FeatureDmrToRootEClassConverter();
+		featureDmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+	}
+
+	@Test
+	public void getRootEClass_withEReferencePath() {
+		featureDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.EREFERENCE__EREFERENCE_TYPE);
+		featureDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		featureDmr.setDomainModelEFeature(EcorePackage.Literals.ESTRUCTURAL_FEATURE__CHANGEABLE);
+		final EClass result = converter.getRootEClass(featureDmr);
+		assertSame(EcorePackage.Literals.EREFERENCE, result);
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void getRootEClass_noDomainModelEFeature() {
+		converter.getRootEClass(featureDmr);
+	}
+
+	@Test
+	public void getRootEClass_noEReferencePath() {
+		featureDmr.setDomainModelEFeature(EcorePackage.Literals.ESTRUCTURAL_FEATURE__CHANGEABLE);
+		final EClass result = converter.getRootEClass(featureDmr);
+		assertSame(EcorePackage.Literals.ESTRUCTURAL_FEATURE, result);
+	}
+
+	@Test
+	public void isApplicable_featureDmr() {
+		assertEquals(1d, converter.isApplicable(featureDmr), 0d);
+	}
+
+	@Test
+	public void isApplicable_noFeatureDmr() {
+		assertEquals(DmrToRootEClassConverter.NOT_APPLICABLE, converter.isApplicable(mock(VDomainModelReference.class)),
+			0d);
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.segments.index.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.segments.index.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.index.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.segments.index.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bf679bf..7ffade9 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,14 +2,14 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.index.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.index;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.index.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.index;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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
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 4584fd7..55477b4 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/core/services/segments/index/test/AllTests.java b/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/core/services/segments/index/test/AllTests.java
index cecac4e..86b5237 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/core/services/segments/index/test/AllTests.java
+++ b/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/core/services/segments/index/test/AllTests.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.emfforms.internal.core.services.segments.index.EMFIndexedValueProperty_Test;
 import org.eclipse.emfforms.internal.core.services.segments.index.IndexDmrSegmentGenerator_Test;
+import org.eclipse.emfforms.internal.core.services.segments.index.IndexDmrToRootEClassConverter_Test;
 import org.eclipse.emfforms.internal.core.services.segments.index.IndexSegmentConverter_Test;
 import org.eclipse.emfforms.internal.core.services.segments.index.IndexSegmentStructuralChangeTester_Test;
 import org.junit.runner.RunWith;
@@ -28,6 +29,7 @@
  */
 @RunWith(Suite.class)
 @SuiteClasses({ EMFIndexedValueProperty_Test.class, IndexDmrSegmentGenerator_Test.class,
-	IndexSegmentConverter_Test.class, IndexSegmentStructuralChangeTester_Test.class })
+	IndexSegmentConverter_Test.class, IndexSegmentStructuralChangeTester_Test.class,
+	IndexDmrToRootEClassConverter_Test.class })
 public class AllTests {
 }
diff --git a/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexDmrToRootEClassConverter_Test.java b/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexDmrToRootEClassConverter_Test.java
new file mode 100644
index 0000000..b27c216
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexDmrToRootEClassConverter_Test.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments.index;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Optional;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrFactory;
+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.VViewFactory;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Lucas Koehler
+ *
+ */
+public class IndexDmrToRootEClassConverter_Test {
+
+	private IndexDmrToRootEClassConverter converter;
+	private LegacyDmrToRootEClass dmrToRootEClass;
+	private VIndexDomainModelReference indexDmr;
+
+	@Before
+	public void setUp() {
+		converter = new IndexDmrToRootEClassConverter();
+		dmrToRootEClass = mock(LegacyDmrToRootEClass.class);
+		converter.setLegacyDmrToRootEClass(dmrToRootEClass);
+		indexDmr = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+	}
+
+	@Test
+	public void getRootEClass_noPrefixDmr_withEReferencePath() {
+		indexDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.EREFERENCE__EREFERENCE_TYPE);
+		indexDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		indexDmr.setDomainModelEFeature(EcorePackage.Literals.ESTRUCTURAL_FEATURE__CHANGEABLE);
+		final EClass result = converter.getRootEClass(indexDmr);
+		assertSame(EcorePackage.Literals.EREFERENCE, result);
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void getRootEClass_noPrefixDmr_noDomainModelEFeature() {
+		converter.getRootEClass(indexDmr);
+	}
+
+	@Test
+	public void getRootEClass_noPrefixDmr_noEReferencePath() {
+		indexDmr.setDomainModelEFeature(EcorePackage.Literals.ESTRUCTURAL_FEATURE__CHANGEABLE);
+		final EClass result = converter.getRootEClass(indexDmr);
+		assertSame(EcorePackage.Literals.ESTRUCTURAL_FEATURE, result);
+	}
+
+	@Test
+	public void getRootEClass_prefixDmr() {
+		final VDomainModelReference prefixDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		indexDmr.setPrefixDMR(prefixDmr);
+		final EClass eClass = mock(EClass.class);
+		when(dmrToRootEClass.getRootEClass(prefixDmr)).thenReturn(Optional.of(eClass));
+
+		final EClass result = converter.getRootEClass(indexDmr);
+
+		assertSame(eClass, result);
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void getRootEClass_prefixDmr_notRootEClass() {
+		final VDomainModelReference prefixDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		indexDmr.setPrefixDMR(prefixDmr);
+		when(dmrToRootEClass.getRootEClass(prefixDmr)).thenReturn(Optional.empty());
+
+		converter.getRootEClass(indexDmr);
+	}
+
+	@Test
+	public void isApplicable_indexDmr() {
+		assertEquals(3d, converter.isApplicable(indexDmr), 0d);
+	}
+
+	@Test
+	public void isApplicable_noIndexDmr() {
+		assertEquals(DmrToRootEClassConverter.NOT_APPLICABLE,
+			converter.isApplicable(mock(VFeaturePathDomainModelReference.class)),
+			0d);
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexSegmentStructuralChangeTester_ITest.java b/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexSegmentStructuralChangeTester_ITest.java
index ac81c4a..1e52462 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexSegmentStructuralChangeTester_ITest.java
+++ b/tests/org.eclipse.emfforms.core.services.segments.index.test/src/org/eclipse/emfforms/internal/core/services/segments/index/IndexSegmentStructuralChangeTester_ITest.java
@@ -16,11 +16,14 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import java.util.Collection;
 import java.util.Dictionary;
 import java.util.Hashtable;
+import java.util.Optional;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EObject;
@@ -33,13 +36,14 @@
 import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsSegmentResolver;
 import org.eclipse.emfforms.spi.core.services.structuralchange.StructuralChangeSegmentTester;
 import org.eclipse.emfforms.spi.view.indexsegment.model.VIndexDomainModelReferenceSegment;
-import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 
@@ -52,46 +56,45 @@
 public class IndexSegmentStructuralChangeTester_ITest {
 
 	private static BundleContext bundleContext;
-	private ServiceReference<StructuralChangeSegmentTester> serviceReference;
-	private StructuralChangeSegmentTester service;
-	private EMFFormsSegmentResolver segmentResolver;
-	private ReportService reportService;
-	private ServiceRegistration<ReportService> reportServiceRegistration;
-	private ServiceRegistration<EMFFormsSegmentResolver> segmentResolverRegistration;
+	private static ServiceRegistration<ReportService> reportServiceRegistration;
+	private static ServiceRegistration<EMFFormsSegmentResolver> segmentResolverRegistration;
+	private static EMFFormsSegmentResolver segmentResolver;
+	private static ReportService reportService;
+	private Collection<ServiceReference<StructuralChangeSegmentTester>> serviceReferences;
 
 	@BeforeClass
 	public static void setUpBeforeClass() {
 		bundleContext = FrameworkUtil.getBundle(IndexSegmentStructuralChangeTester_ITest.class).getBundleContext();
-	}
-
-	@Before
-	public void setUp() {
-		reportService = mock(ReportService.class);
-		segmentResolver = mock(EMFFormsSegmentResolver.class);
-
 		final Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
 		dictionary.put(Constants.SERVICE_RANKING, 5000);
+		reportService = mock(ReportService.class);
+		segmentResolver = mock(EMFFormsSegmentResolver.class);
 		reportServiceRegistration = bundleContext.registerService(ReportService.class, reportService, dictionary);
 		segmentResolverRegistration = bundleContext.registerService(EMFFormsSegmentResolver.class, segmentResolver,
 			dictionary);
-
-		serviceReference = bundleContext.getServiceReference(StructuralChangeSegmentTester.class);
-		service = bundleContext.getService(serviceReference);
 	}
 
-	@After
-	public void tearDown() {
+	@Before
+	public void setUp() throws InvalidSyntaxException {
+		reset(reportService, segmentResolver);
+		serviceReferences = bundleContext.getServiceReferences(StructuralChangeSegmentTester.class, null);
+	}
+
+	@AfterClass
+	public static void tearDownAfterAll() {
 		reportServiceRegistration.unregister();
 		segmentResolverRegistration.unregister();
 	}
 
 	@Test
-	public void testServiceType() {
-		assertTrue(IndexSegmentStructuralChangeTester.class.isInstance(service));
-	}
-
-	@Test
 	public void testIntegration() throws DatabindingFailedException {
+		final Optional<IndexSegmentStructuralChangeTester> indexService = serviceReferences.stream()
+			.map(ref -> bundleContext.getService(ref))
+			.filter(IndexSegmentStructuralChangeTester.class::isInstance)
+			.findFirst()
+			.map(IndexSegmentStructuralChangeTester.class::cast);
+
+		assertTrue("IndexSegmentStructuralChangeTester present: ", indexService.isPresent()); //$NON-NLS-1$
 		when(segmentResolver.resolveSegment(any(VDomainModelReferenceSegment.class), any(EObject.class)))
 			.thenReturn(mock(Setting.class));
 
@@ -101,7 +104,7 @@
 		final VIndexDomainModelReferenceSegment segment = mock(VIndexDomainModelReferenceSegment.class);
 		final EObject domain = mock(EObject.class);
 
-		final IndexSegmentStructuralChangeTester changeTester = (IndexSegmentStructuralChangeTester) service;
+		final IndexSegmentStructuralChangeTester changeTester = indexService.get();
 
 		changeTester.isApplicable(null);
 		changeTester.isStructureChanged(segment, domain, mcn);
diff --git a/tests/org.eclipse.emfforms.core.services.segments.mapping.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.segments.mapping.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.mapping.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.segments.mapping.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 cf83319..74a4c84 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.mapping.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.mapping.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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 bd10774..902c8fb 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.multi.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.segments.multi.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.multi.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.segments.multi.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c58965f..b306683 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.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.segments.multi;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.multi.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.multi;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.segments.multi;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.multi.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.multi;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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 c939635..42661fd 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/core/services/segments/multi/test/AllTests.java b/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/core/services/segments/multi/test/AllTests.java
index b77cce3..fc989e9 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/core/services/segments/multi/test/AllTests.java
+++ b/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/core/services/segments/multi/test/AllTests.java
@@ -16,6 +16,7 @@
 import org.eclipse.emfforms.internal.core.services.segments.multi.EMFFormsMappingProviderMulti_Test;
 import org.eclipse.emfforms.internal.core.services.segments.multi.MultiSegmentConverter_Test;
 import org.eclipse.emfforms.internal.core.services.segments.multi.MultiSegmentExpander_Test;
+import org.eclipse.emfforms.internal.core.services.segments.multi.TableDmrToRootEClassConverter_Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
@@ -28,7 +29,7 @@
  */
 @RunWith(Suite.class)
 @SuiteClasses({ EMFFormsMappingProviderMulti_Test.class, MultiSegmentConverter_Test.class,
-	MultiSegmentExpander_Test.class })
+	MultiSegmentExpander_Test.class, TableDmrToRootEClassConverter_Test.class })
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator_Test.java b/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator_Test.java
index c4b1208..11a87d5 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator_Test.java
+++ b/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrSegmentGenerator_Test.java
@@ -52,6 +52,7 @@
  */
 public class TableDmrSegmentGenerator_Test {
 
+	// FIXME adapt tests to child dmr generation
 	private TableDmrSegmentGenerator generator;
 	private EMFFormsSegmentGenerator emfFormsSegmentGenerator;
 
@@ -102,16 +103,25 @@
 		innerSegment2.setDomainModelFeature(TestPackage.Literals.B__CLIST.getName());
 		innerSegments.add(innerSegment1);
 		innerSegments.add(innerSegment2);
-		when(emfFormsSegmentGenerator.generateSegments(any(VDomainModelReference.class)))
+		when(emfFormsSegmentGenerator.generateSegments(innerDmr))
 			.thenReturn(innerSegments);
 		generator.setEMFFormsSegmentGenerator(emfFormsSegmentGenerator);
 
 		final VFeaturePathDomainModelReference columnDmr1 = VViewFactory.eINSTANCE
 			.createFeaturePathDomainModelReference();
 		columnDmr1.setDomainModelEFeature(TestPackage.Literals.C__A);
+		final VFeatureDomainModelReferenceSegment columnDmr1Segment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(emfFormsSegmentGenerator.generateSegments(columnDmr1))
+			.thenReturn(Collections.singletonList(columnDmr1Segment));
+
 		final VFeaturePathDomainModelReference columnDmr2 = VViewFactory.eINSTANCE
 			.createFeaturePathDomainModelReference();
 		columnDmr2.setDomainModelEFeature(TestPackage.Literals.C__D);
+		final VFeatureDomainModelReferenceSegment columnDmr2Segment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(emfFormsSegmentGenerator.generateSegments(columnDmr2))
+			.thenReturn(Collections.singletonList(columnDmr2Segment));
 
 		final VTableDomainModelReference tableDmr = VTableFactory.eINSTANCE.createTableDomainModelReference();
 		tableDmr.setDomainModelReference(innerDmr);
@@ -122,7 +132,8 @@
 
 		assertNotNull(result);
 		assertEquals(2, result.size());
-		verify(emfFormsSegmentGenerator, times(1)).generateSegments(isA(VFeaturePathDomainModelReference.class));
+		// 3 invocations: once for the table dmr and once for each of the two columns
+		verify(emfFormsSegmentGenerator, times(3)).generateSegments(isA(VFeaturePathDomainModelReference.class));
 
 		assertEquals(VViewPackage.Literals.FEATURE_DOMAIN_MODEL_REFERENCE_SEGMENT, result.get(0).eClass());
 		final VFeatureDomainModelReferenceSegment segment1 = (VFeatureDomainModelReferenceSegment) result.get(0);
@@ -132,8 +143,18 @@
 		final VMultiDomainModelReferenceSegment multiSegment = (VMultiDomainModelReferenceSegment) result.get(1);
 		assertEquals(TestPackage.Literals.B__CLIST.getName(), multiSegment.getDomainModelFeature());
 		assertEquals(2, multiSegment.getChildDomainModelReferences().size());
-		assertSame(columnDmr1, multiSegment.getChildDomainModelReferences().get(0));
-		assertSame(columnDmr2, multiSegment.getChildDomainModelReferences().get(1));
+
+		// Verify child dmr generation
+		final VDomainModelReference childDmr1 = multiSegment.getChildDomainModelReferences().get(0);
+		final VDomainModelReference childDmr2 = multiSegment.getChildDomainModelReferences().get(1);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, childDmr1.eClass());
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, childDmr2.eClass());
+		assertSame(columnDmr1Segment, childDmr1.getSegments().get(0));
+		assertSame(columnDmr2Segment, childDmr2.getSegments().get(0));
+
+		// Column dmrs must be re-generated and "stolen" from the table dmr
+		assertSame(tableDmr, columnDmr1.eContainer());
+		assertSame(tableDmr, columnDmr2.eContainer());
 	}
 
 	@Test
@@ -152,15 +173,24 @@
 		innerSegment2.setDomainModelFeature(TestPackage.Literals.B__CLIST.getName());
 		innerSegments.add(innerSegment1);
 		innerSegments.add(innerSegment2);
-		when(emfFormsSegmentGenerator.generateSegments(any(VDomainModelReference.class))).thenReturn(innerSegments);
+		when(emfFormsSegmentGenerator.generateSegments(any())).thenReturn(innerSegments);
 		generator.setEMFFormsSegmentGenerator(emfFormsSegmentGenerator);
 
 		final VFeaturePathDomainModelReference columnDmr1 = VViewFactory.eINSTANCE
 			.createFeaturePathDomainModelReference();
 		columnDmr1.setDomainModelEFeature(TestPackage.Literals.C__A);
+		final VFeatureDomainModelReferenceSegment columnDmr1Segment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(emfFormsSegmentGenerator.generateSegments(columnDmr1))
+			.thenReturn(Collections.singletonList(columnDmr1Segment));
+
 		final VFeaturePathDomainModelReference columnDmr2 = VViewFactory.eINSTANCE
 			.createFeaturePathDomainModelReference();
 		columnDmr2.setDomainModelEFeature(TestPackage.Literals.C__D);
+		final VFeatureDomainModelReferenceSegment columnDmr2Segment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(emfFormsSegmentGenerator.generateSegments(columnDmr2))
+			.thenReturn(Collections.singletonList(columnDmr2Segment));
 
 		tableDmr.getColumnDomainModelReferences().add(columnDmr1);
 		tableDmr.getColumnDomainModelReferences().add(columnDmr2);
@@ -169,7 +199,8 @@
 
 		assertNotNull(result);
 		assertEquals(2, result.size());
-		verify(emfFormsSegmentGenerator, times(1)).generateSegments(isA(VFeaturePathDomainModelReference.class));
+		// 3 invocations: once for the table dmr and once for each of the two columns
+		verify(emfFormsSegmentGenerator, times(3)).generateSegments(isA(VFeaturePathDomainModelReference.class));
 
 		assertEquals(VViewPackage.Literals.FEATURE_DOMAIN_MODEL_REFERENCE_SEGMENT, result.get(0).eClass());
 		final VFeatureDomainModelReferenceSegment segment1 = (VFeatureDomainModelReferenceSegment) result.get(0);
@@ -179,8 +210,18 @@
 		final VMultiDomainModelReferenceSegment multiSegment = (VMultiDomainModelReferenceSegment) result.get(1);
 		assertEquals(TestPackage.Literals.B__CLIST.getName(), multiSegment.getDomainModelFeature());
 		assertEquals(2, multiSegment.getChildDomainModelReferences().size());
-		assertSame(columnDmr1, multiSegment.getChildDomainModelReferences().get(0));
-		assertSame(columnDmr2, multiSegment.getChildDomainModelReferences().get(1));
+
+		// Verify child dmr generation
+		final VDomainModelReference childDmr1 = multiSegment.getChildDomainModelReferences().get(0);
+		final VDomainModelReference childDmr2 = multiSegment.getChildDomainModelReferences().get(1);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, childDmr1.eClass());
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, childDmr2.eClass());
+		assertSame(columnDmr1Segment, childDmr1.getSegments().get(0));
+		assertSame(columnDmr2Segment, childDmr2.getSegments().get(0));
+
+		// Column dmrs must be re-generated and "stolen" from the table dmr
+		assertSame(tableDmr, columnDmr1.eContainer());
+		assertSame(tableDmr, columnDmr2.eContainer());
 	}
 
 	@Test
diff --git a/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrToRootEClassConverter_Test.java b/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrToRootEClassConverter_Test.java
new file mode 100644
index 0000000..41b26c8
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.segments.multi.test/src/org/eclipse/emfforms/internal/core/services/segments/multi/TableDmrToRootEClassConverter_Test.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments.multi;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Optional;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+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.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableFactory;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.eclipse.emfforms.spi.core.services.segments.LegacyDmrToRootEClass;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link TableDmrToRootEClassConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class TableDmrToRootEClassConverter_Test {
+
+	private TableDmrToRootEClassConverter converter;
+	private LegacyDmrToRootEClass dmrToRootEClass;
+	private VTableDomainModelReference tableDmr;
+
+	@Before
+	public void setUp() {
+		converter = new TableDmrToRootEClassConverter();
+		dmrToRootEClass = mock(LegacyDmrToRootEClass.class);
+		converter.setLegacyDmrToRootEClass(dmrToRootEClass);
+		tableDmr = VTableFactory.eINSTANCE.createTableDomainModelReference();
+	}
+
+	@Test
+	public void getRootEClass_noInnerDmr_withEReferencePath() {
+		tableDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.EREFERENCE__EREFERENCE_TYPE);
+		tableDmr.getDomainModelEReferencePath().add(EcorePackage.Literals.ECLASS__ESTRUCTURAL_FEATURES);
+		tableDmr.setDomainModelEFeature(EcorePackage.Literals.ESTRUCTURAL_FEATURE__CHANGEABLE);
+		final EClass result = converter.getRootEClass(tableDmr);
+		assertSame(EcorePackage.Literals.EREFERENCE, result);
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void getRootEClass_noInnerDmr_noDomainModelEFeature() {
+		converter.getRootEClass(tableDmr);
+	}
+
+	@Test
+	public void getRootEClass_noInnerDmr_noEReferencePath() {
+		tableDmr.setDomainModelEFeature(EcorePackage.Literals.ESTRUCTURAL_FEATURE__CHANGEABLE);
+		final EClass result = converter.getRootEClass(tableDmr);
+		assertSame(EcorePackage.Literals.ESTRUCTURAL_FEATURE, result);
+	}
+
+	@Test
+	public void getRootEClass_innerDmr() {
+		final VDomainModelReference innerDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		tableDmr.setDomainModelReference(innerDmr);
+		final EClass eClass = mock(EClass.class);
+		when(dmrToRootEClass.getRootEClass(innerDmr)).thenReturn(Optional.of(eClass));
+
+		final EClass result = converter.getRootEClass(tableDmr);
+
+		assertSame(eClass, result);
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void getRootEClass_innerDmr_notRootEClass() {
+		final VDomainModelReference prefixDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		tableDmr.setDomainModelReference(prefixDmr);
+		when(dmrToRootEClass.getRootEClass(prefixDmr)).thenReturn(Optional.empty());
+
+		converter.getRootEClass(tableDmr);
+	}
+
+	@Test
+	public void isApplicable_tableDmr() {
+		assertEquals(3d, converter.isApplicable(tableDmr), 0d);
+	}
+
+	@Test
+	public void isApplicable_noTableDmr() {
+		assertEquals(DmrToRootEClassConverter.NOT_APPLICABLE,
+			converter.isApplicable(mock(VFeaturePathDomainModelReference.class)),
+			0d);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.segments.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.segments.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.segments.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 833ce8b..03d4273 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
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Services for DMR Segments Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.segments;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.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 820100b..abeb834 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.test/src/org/eclipse/emfforms/internal/core/services/segments/LegacyDmrToRootEClassImpl_Test.java b/tests/org.eclipse.emfforms.core.services.segments.test/src/org/eclipse/emfforms/internal/core/services/segments/LegacyDmrToRootEClassImpl_Test.java
new file mode 100644
index 0000000..e481f60
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.segments.test/src/org/eclipse/emfforms/internal/core/services/segments/LegacyDmrToRootEClassImpl_Test.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.segments;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.notNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Optional;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.segments.DmrToRootEClassConverter;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link LegacyDmrToRootEClassImpl}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class LegacyDmrToRootEClassImpl_Test {
+
+	private LegacyDmrToRootEClassImpl fixture;
+	private ReportService reportService;
+	private VDomainModelReference dmr;
+
+	@Before
+	public void setUp() {
+		fixture = new LegacyDmrToRootEClassImpl();
+		reportService = mock(ReportService.class);
+		fixture.setReportService(reportService);
+		dmr = mock(VDomainModelReference.class);
+	}
+
+	@Test
+	public void getRootEClass_noConverters() {
+		final Optional<EClass> result = fixture.getRootEClass(dmr);
+
+		assertFalse(result.isPresent());
+		verify(reportService, times(1)).report(notNull(AbstractReport.class));
+	}
+
+	@Test
+	public void getRootEClass_noApplicableConverter() {
+		final DmrToRootEClassConverter converter = mock(DmrToRootEClassConverter.class);
+		when(converter.isApplicable(dmr)).thenReturn(DmrToRootEClassConverter.NOT_APPLICABLE);
+
+		fixture.addDmrToRootEClassConverter(converter);
+		final Optional<EClass> result = fixture.getRootEClass(dmr);
+
+		assertFalse(result.isPresent());
+		verify(reportService, times(1)).report(notNull(AbstractReport.class));
+		verify(converter, never()).getRootEClass(any());
+	}
+
+	@Test
+	public void getRootEClass_useHighestRankingConverter() {
+		final DmrToRootEClassConverter converter1 = mock(DmrToRootEClassConverter.class);
+		when(converter1.isApplicable(dmr)).thenReturn(1d);
+		final DmrToRootEClassConverter converter2 = mock(DmrToRootEClassConverter.class);
+		when(converter2.isApplicable(dmr)).thenReturn(5d);
+		final EClass eClass = mock(EClass.class);
+		when(converter2.getRootEClass(dmr)).thenReturn(eClass);
+		final DmrToRootEClassConverter converter3 = mock(DmrToRootEClassConverter.class);
+		when(converter3.isApplicable(dmr)).thenReturn(DmrToRootEClassConverter.NOT_APPLICABLE);
+
+		fixture.addDmrToRootEClassConverter(converter1);
+		fixture.addDmrToRootEClassConverter(converter2);
+		fixture.addDmrToRootEClassConverter(converter3);
+		final Optional<EClass> result = fixture.getRootEClass(dmr);
+
+		assertTrue(result.isPresent());
+		assertSame(eClass, result.get());
+		verify(reportService, never()).report(any());
+		verify(converter1).isApplicable(dmr);
+		verify(converter2).isApplicable(dmr);
+		verify(converter3).isApplicable(dmr);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test
+	public void getRootEClass_converterThrowsException() {
+		final DmrToRootEClassConverter converter = mock(DmrToRootEClassConverter.class);
+		when(converter.isApplicable(dmr)).thenReturn(1d);
+		when(converter.getRootEClass(dmr)).thenThrow(IllegalArgumentException.class);
+
+		fixture.addDmrToRootEClassConverter(converter);
+		final Optional<EClass> result = fixture.getRootEClass(dmr);
+
+		assertFalse(result.isPresent());
+		verify(reportService, times(1)).report(notNull(AbstractReport.class));
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 102bec5..ac179fc 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.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.structuralchange.keyattribute;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.structuralchange.keyattribute;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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 4ccfd06..223ea61 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.structuralchange.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.structuralchange.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a79f745..016cf5a 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.core.services.structuralchange.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.structuralchange;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.structuralchange.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.structuralchange;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.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 ce031b2..baccbf7 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.core.services.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 8a8b616..5dcf23c 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
@@ -33,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@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"/>
+<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.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.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.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.context@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services*1.22.0.qualifier@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.localization@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 fc44725..6509a71 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,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.tests
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.core.services.scoped;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.tests;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.core.services.view;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.reveal;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.scoped;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.tests;version="1.22.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.objenesis;bundle-version="[1.0.0,2.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)"
+Import-Package: org.eclipse.emf.ecp.view.test.common.spi;version="[1.22.0,1.23.0)",
+ 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 0023978..499f1d7 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/core/services/view/EMFFormsContextTracker_Test.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/core/services/view/EMFFormsContextTracker_Test.java
new file mode 100644
index 0000000..d8732d3
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/core/services/view/EMFFormsContextTracker_Test.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.view;
+
+import static org.hamcrest.CoreMatchers.anything;
+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.junit.Assert.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.common.TriConsumer;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextTracker;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.eclipse.emfforms.spi.core.services.view.RootDomainModelChangeListener;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.stubbing.Answer;
+
+/**
+ * Test cases for the {@link EMFFormsContextTracker} class.
+ */
+@SuppressWarnings("nls")
+public class EMFFormsContextTracker_Test {
+
+	private final Map<EMFFormsViewContext, EMFFormsContextListener> contextListeners = new HashMap<>();
+	private final Map<EMFFormsViewContext, RootDomainModelChangeListener> rootDomainListeners = new HashMap<>();
+
+	private final EMFFormsViewContext root = mockContext("root");
+	private final EMFFormsContextTracker fixture = new EMFFormsContextTracker(root);
+
+	/**
+	 * Initializes me.
+	 */
+	public EMFFormsContextTracker_Test() {
+		super();
+	}
+
+	@Test
+	public void onContextDisposed_root() {
+		final Consumer<EMFFormsViewContext> handler = mockConsumer();
+
+		fixture.onContextDisposed(handler);
+
+		dispose(root);
+
+		verify(handler).accept(root);
+	}
+
+	@Test
+	public void onContextDisposed_child() {
+		final EMFFormsViewContext child = mockContext("child");
+		final VElement parentView = mock(VElement.class);
+		addChild(root, parentView, child);
+
+		final Consumer<EMFFormsViewContext> handler = mockConsumer();
+
+		fixture.onContextDisposed(handler);
+
+		dispose(child);
+
+		verify(handler).accept(child);
+		verify(handler, never()).accept(root);
+	}
+
+	@Test
+	public void isRoot() {
+		final EMFFormsViewContext child = mockContext("child");
+		final VElement parentView = mock(VElement.class);
+		addChild(root, parentView, child);
+
+		assertThat("Root not root", fixture.isRoot(root), is(true));
+		assertThat("Child is root", fixture.isRoot(child), is(false));
+	}
+
+	@Test
+	public void onChildContextAdded() {
+		final EMFFormsViewContext child = mockContext("child");
+		final VElement parentView = mock(VElement.class, "parentView");
+
+		final TriConsumer<EMFFormsViewContext, VElement, EMFFormsViewContext> handler = mockTriConsumer();
+
+		fixture.onChildContextAdded(handler);
+
+		addChild(root, parentView, child);
+
+		verify(handler).accept(root, parentView, child);
+	}
+
+	@Test
+	public void onContextInitialized_child() {
+		final EMFFormsViewContext child = mockContext("child");
+		final VElement parentView = mock(VElement.class, "parentView");
+
+		final Consumer<EMFFormsViewContext> handler = mockConsumer();
+
+		fixture.onContextInitialized(handler);
+
+		addChild(root, parentView, child);
+
+		verify(handler).accept(child);
+		verify(handler, never()).accept(root);
+	}
+
+	@Test
+	public void onChildContextRemoved() {
+		final EMFFormsViewContext child = mockContext("child");
+		final VElement parentView = mock(VElement.class, "parentView");
+		addChild(root, parentView, child);
+
+		final TriConsumer<EMFFormsViewContext, VElement, EMFFormsViewContext> handler = mockTriConsumer();
+
+		fixture.onChildContextRemoved(handler);
+
+		removeChild(root, child);
+
+		verify(handler).accept(root, parentView, child);
+	}
+
+	@Test
+	public void onDomainModelChanged_root() {
+		final Consumer<EMFFormsViewContext> handler = mockConsumer();
+
+		fixture.onDomainModelChanged(handler);
+
+		changeDomainModel(root);
+
+		verify(handler).accept(root);
+	}
+
+	@Test
+	public void onDomainModelChanged_child() {
+		final EMFFormsViewContext child = mockContext("child");
+		final VElement parentView = mock(VElement.class, "parentView");
+		addChild(root, parentView, child);
+
+		final Consumer<EMFFormsViewContext> handler = mockConsumer();
+
+		fixture.onDomainModelChanged(handler);
+
+		changeDomainModel(child);
+
+		verify(handler).accept(child);
+		verify(handler, never()).accept(root);
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void open() {
+		fixture.open();
+	}
+
+	@After
+	public void close() {
+		fixture.close();
+
+		assertThat("Listeners not removed", contextListeners.keySet(), not(hasItem(anything())));
+		assertThat("Listeners not removed", rootDomainListeners.keySet(), not(hasItem(anything())));
+	}
+
+	private EMFFormsViewContext mockContext(String name) {
+		final EMFFormsViewContext result = mock(EMFFormsViewContext.class, name);
+
+		doAnswer(interceptListenerRegistration(EMFFormsContextListener.class, contextListeners))
+			.when(result).registerEMFFormsContextListener(any());
+		doAnswer(interceptListenerRegistration(RootDomainModelChangeListener.class, rootDomainListeners))
+			.when(result).registerRootDomainModelChangeListener(any());
+
+		doAnswer(interceptListenerUnregistration(EMFFormsContextListener.class, contextListeners))
+			.when(result).unregisterEMFFormsContextListener(any());
+		doAnswer(interceptListenerUnregistration(RootDomainModelChangeListener.class, rootDomainListeners))
+			.when(result).unregisterRootDomainModelChangeListener(any());
+
+		return result;
+	}
+
+	private <T> Answer<T> interceptListenerRegistration(Class<T> type,
+		Map<? super EMFFormsViewContext, ? super T> map) {
+		return invocation -> {
+			final T listener = type.cast(invocation.getArguments()[0]);
+			map.put((EMFFormsViewContext) invocation.getMock(), listener);
+			return null;
+		};
+	}
+
+	private <T> Answer<T> interceptListenerUnregistration(Class<T> type,
+		Map<? super EMFFormsViewContext, ? super T> map) {
+		return invocation -> {
+			final T listener = type.cast(invocation.getArguments()[0]);
+			map.remove(invocation.getMock(), listener);
+			return null;
+		};
+	}
+
+	@SuppressWarnings("unchecked")
+	<T> Consumer<T> mockConsumer() {
+		return mock(Consumer.class);
+	}
+
+	@SuppressWarnings("unchecked")
+	<T, U, V> TriConsumer<T, U, V> mockTriConsumer() {
+		return mock(TriConsumer.class);
+	}
+
+	private EMFFormsContextListener requireContextListener(EMFFormsViewContext context) {
+		final EMFFormsContextListener result = contextListeners.get(context);
+		assertThat(String.format("No context listener for %s", context), result, notNullValue());
+		return result;
+	}
+
+	private RootDomainModelChangeListener requireRootDomainListener(EMFFormsViewContext context) {
+		final RootDomainModelChangeListener result = rootDomainListeners.get(context);
+		assertThat(String.format("No root domain model listener for %s", context), result, notNullValue());
+		return result;
+	}
+
+	void dispose(EMFFormsViewContext context) {
+		requireContextListener(context).contextDispose();
+	}
+
+	void initialize(EMFFormsViewContext context) {
+		requireContextListener(context).contextInitialised();
+	}
+
+	void addChild(EMFFormsViewContext parent, VElement parentView, EMFFormsViewContext child) {
+		requireContextListener(parent).childContextAdded(parentView, child);
+		initialize(child);
+	}
+
+	void removeChild(EMFFormsViewContext parent, EMFFormsViewContext child) {
+		dispose(child);
+		requireContextListener(parent).childContextDisposed(child);
+	}
+
+	void changeDomainModel(EMFFormsViewContext context) {
+		requireRootDomainListener(context).notifyChange();
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceImpl_ITest.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceImpl_ITest.java
new file mode 100644
index 0000000..74fc939
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/reveal/EMFFormsRevealServiceImpl_ITest.java
@@ -0,0 +1,325 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.reveal;
+
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture.isA;
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture.isListOf;
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture.pass;
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.eMock;
+import static org.hamcrest.CoreMatchers.both;
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.instanceOf;
+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.junit.Assert.assertThat;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture.TestProvider;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillDown;
+import org.eclipse.emfforms.spi.core.services.reveal.DrillUp;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStepKind;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InOrder;
+
+/**
+ * Integration tests covering the {@link EMFFormsRevealServiceImpl} class.
+ */
+@SuppressWarnings("nls")
+@RunWith(EMFMockingRunner.class)
+public class EMFFormsRevealServiceImpl_ITest {
+
+	@EMock
+	@ViewModel
+	private VControl control;
+
+	@EMock
+	@DomainModel
+	private EObject domainModelRoot;
+
+	@EMock
+	private EObject object;
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<EMFFormsViewContext> fixture = EMFFormsRevealServiceFixture.create(this);
+
+	/**
+	 * Initializes me.
+	 */
+	public EMFFormsRevealServiceImpl_ITest() {
+		super();
+	}
+
+	@Test
+	public void reveal_noProviders() {
+		assertThat("Should have failed to reveal", fixture.reveal(object), is(false));
+		assertThat("Shoudl be a failure step", fixture.reveal(object, control), isA(RevealStepKind.FAILED));
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test
+	public void provider_injection() {
+		final List<Object> injectedIntoBid = new ArrayList<>(2);
+		final List<Object> injectedIntoCreate = new ArrayList<>(3);
+
+		final EMFFormsRevealProvider provider = new EMFFormsRevealProvider() {
+			@Bid
+			double bid(VElement viewModel, EObject domainModel) {
+				injectedIntoBid.add(viewModel);
+				injectedIntoBid.add(domainModel);
+				return 1.0;
+			}
+
+			@Create
+			RevealStep create(VElement viewModel, EObject domainModel, RevealHelper helper) {
+				injectedIntoCreate.add(viewModel);
+				injectedIntoCreate.add(domainModel);
+				injectedIntoCreate.add(helper);
+				return RevealStep.reveal(viewModel, domainModel, pass());
+			}
+		};
+
+		fixture.addRevealProvider(provider);
+		fixture.reveal(object);
+
+		assertThat(injectedIntoBid, isListOf(control, object));
+		assertThat(injectedIntoCreate,
+			hasItems(sameInstance(control), sameInstance(object), instanceOf(RevealHelperImpl.class)));
+	}
+
+	@Test
+	public void terminalStep() {
+		final Runnable reveal = mock(Runnable.class, "reveal");
+
+		final EMFFormsRevealProvider provider = new TestProvider() {
+			@Create
+			RevealStep create(VElement viewModel, EObject domainModel) {
+				return RevealStep.reveal(viewModel, domainModel, reveal);
+			}
+		};
+
+		fixture.addRevealProvider(provider);
+
+		final boolean revealed = fixture.reveal(object);
+
+		assertThat("Not revealed", revealed, is(true));
+		verify(reveal).run();
+	}
+
+	@Test
+	public void helper_defer() {
+		final Runnable reveal = mock(Runnable.class, "reveal");
+
+		final Object revealer = new Object() {
+			@Reveal
+			public RevealStep reveal(VElement viewModel, EObject domainModel) {
+				return RevealStep.reveal(viewModel, domainModel, reveal);
+			}
+		};
+
+		final EMFFormsRevealProvider provider = new TestProvider() {
+			@Create
+			RevealStep create(VElement viewModel, EObject domainModel, RevealHelper helper) {
+				return helper.defer(revealer);
+			}
+		};
+
+		fixture.addRevealProvider(provider);
+
+		final RevealStep deferredStep = fixture.reveal(object, control);
+
+		// It's deferred; that's the point
+		verify(reveal, never()).run();
+
+		assertThat(deferredStep, isA(RevealStepKind.TERMINAL));
+		assertThat(deferredStep.getViewModel(), is(control));
+		assertThat(deferredStep.getDomainModel(), is(object));
+
+		deferredStep.reveal();
+
+		verify(reveal).run();
+	}
+
+	@Test
+	public void helper_drillDown_internal() {
+		final Runnable outerReveal = mock(Runnable.class, "outerReveal");
+		final Runnable innerReveal = mock(Runnable.class, "innerReveal");
+
+		configureDrillDown(outerReveal, innerReveal);
+		final RevealStep deferredStep = fixture.reveal(object, control);
+
+		// They're deferred; that's the point
+		verify(outerReveal, never()).run();
+		verify(innerReveal, never()).run();
+
+		assertThat(deferredStep, isA(RevealStepKind.INTERMEDIATE));
+		assertThat(deferredStep.getViewModel(), is(control));
+		assertThat(deferredStep.getDomainModel(), is(domainModelRoot));
+		final RevealStep next = deferredStep.drillDown();
+
+		assertThat(next, isA(RevealStepKind.TERMINAL));
+		assertThat("Should have revealed in the child control", next.getViewModel(),
+			both(not((VElement) control)).and(notNullValue()));
+		next.reveal();
+
+		final InOrder inOrder = inOrder(outerReveal, innerReveal);
+		inOrder.verify(outerReveal).run();
+		inOrder.verify(innerReveal).run();
+
+		assertThat("Another computation performed", deferredStep.drillDown(), sameInstance(next));
+	}
+
+	private void configureDrillDown(Runnable outerReveal, Runnable innerReveal) {
+		final List<VControl> children = Collections.singletonList(eMock(VControl.class, "childControl"));
+
+		final Object computation = new Object() {
+			@DrillDown
+			public List<VControl> drillDown(EObject parent) {
+				return children;
+			}
+
+			@Reveal
+			public RevealStep reveal(VElement viewModel, EObject domainModel, RevealStep nextStep) {
+				return RevealStep.reveal(nextStep.getViewModel(), domainModel, outerReveal);
+			}
+		};
+
+		final EMFFormsRevealProvider provider = new TestProvider() {
+			@Create
+			RevealStep create(VElement viewModel, EObject domainModel, RevealHelper helper) {
+				return viewModel == control
+					? helper.drillDown(computation, computation)
+					: RevealStep.reveal(viewModel, domainModel, innerReveal);
+			}
+		};
+
+		fixture.addRevealProvider(provider);
+	}
+
+	@Test
+	public void helper_drillDown_external() {
+		final Runnable outerReveal = mock(Runnable.class, "outerReveal");
+		final Runnable innerReveal = mock(Runnable.class, "innerReveal");
+
+		configureDrillDown(outerReveal, innerReveal);
+		fixture.reveal(object);
+
+		final InOrder inOrder = inOrder(outerReveal, innerReveal);
+		inOrder.verify(outerReveal).run();
+		inOrder.verify(innerReveal).run();
+	}
+
+	@Test
+	public void helper_masterDetail_internal() {
+		final Runnable masterReveal = mock(Runnable.class, "masterReveal");
+		final Runnable detailReveal = mock(Runnable.class, "detailReveal");
+		final EObject detail = eMock(EObject.class, "detail");
+
+		configureMasterDetail(detail, masterReveal, detailReveal);
+		final RevealStep deferredStep = fixture.reveal(detail, control);
+
+		// They're deferred; that's the point
+		verify(masterReveal, never()).run();
+		verify(detailReveal, never()).run();
+
+		assertThat(deferredStep, isA(RevealStepKind.INTERMEDIATE));
+		assertThat(deferredStep.getViewModel(), is(control));
+		// assertThat(deferredStep.getDomainModel(), is(object));
+		final RevealStep next = deferredStep.drillDown();
+
+		assertThat(next, isA(RevealStepKind.TERMINAL));
+		assertThat("Should have revealed in the detail control", next.getViewModel(),
+			both(not((VElement) control)).and(notNullValue()));
+		assertThat(deferredStep.getDomainModel(), is(detail));
+		next.reveal();
+
+		final InOrder inOrder = inOrder(masterReveal, detailReveal);
+		inOrder.verify(masterReveal).run();
+		inOrder.verify(detailReveal).run();
+
+		assertThat("Another computation performed", deferredStep.drillDown(), sameInstance(next));
+	}
+
+	private void configureMasterDetail(EObject detail, Runnable masterReveal, Runnable detailReveal) {
+		final VControl detailView = eMock(VControl.class, "detailView");
+
+		final Object computation = new Object() {
+			@DrillUp
+			public EObject getMaster(EObject eObject) {
+				return eObject == detail ? object : eObject;
+			}
+
+			@Reveal
+			public RevealStep reveal(VElement viewModel, EObject domainModel) {
+				return RevealStep.reveal(viewModel, domainModel, masterReveal);
+			}
+		};
+
+		final EMFFormsRevealProvider provider = new TestProvider() {
+			@Create
+			RevealStep create(VElement viewModel, EObject domainModel, RevealHelper helper) {
+				return viewModel == control
+					? helper.masterDetail(computation, computation)
+					: RevealStep.reveal(viewModel, domainModel, detailReveal);
+			}
+		};
+
+		// Supply the child context for the detail view of the master selection,
+		// which is the 'object', the bespoke parent of the 'detail' object that
+		// we are revealing
+		fixture.createChildContext(control, "childContext", detailView, object);
+
+		fixture.addRevealProvider(provider);
+	}
+
+	@Test
+	public void helper_masterDetail_external() {
+		final Runnable masterReveal = mock(Runnable.class, "masterReveal");
+		final Runnable detailReveal = mock(Runnable.class, "detailReveal");
+		final EObject detail = eMock(EObject.class, "detail");
+
+		configureMasterDetail(detail, masterReveal, detailReveal);
+		fixture.reveal(detail);
+
+		final InOrder inOrder = inOrder(masterReveal, detailReveal);
+		inOrder.verify(masterReveal).run();
+		inOrder.verify(detailReveal).run();
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/FakeViewContext.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/FakeViewContext.java
index d110968..9ce4692 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/FakeViewContext.java
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/FakeViewContext.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 2.0
@@ -10,13 +10,19 @@
  *
  * Contributors:
  * eugen - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.scoped;
 
+import static java.util.Collections.singleton;
+
+import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.spi.model.ModelChangeAddRemoveListener;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
@@ -25,9 +31,16 @@
 
 class FakeViewContext implements EMFFormsViewContext {
 
-	private final EObject domainObject;
+	private EObject domainObject;
 	private final VElement viewModel;
-	private final Set<EMFFormsContextListener> listeners = new LinkedHashSet<EMFFormsContextListener>();
+	private final Set<EMFFormsContextListener> listeners = new LinkedHashSet<>();
+	private final Set<RootDomainModelChangeListener> rootListeners = new LinkedHashSet<>();
+	private final Set<ModelChangeListener> viewListeners = new LinkedHashSet<>();
+
+	private VElement parentElement;
+	private FakeViewContext parent;
+
+	private boolean disposing;
 
 	FakeViewContext(EObject domainObject, VElement viewModel) {
 		this.domainObject = domainObject;
@@ -35,13 +48,10 @@
 	}
 
 	@Override
-	public void unregisterViewChangeListener(ModelChangeListener modelChangeListener) {
-	}
-
-	@Override
 	public void unregisterRootDomainModelChangeListener(
 		RootDomainModelChangeListener rootDomainModelChangeListener) {
 
+		rootListeners.remove(rootDomainModelChangeListener);
 	}
 
 	@Override
@@ -56,13 +66,37 @@
 
 	@Override
 	public void registerViewChangeListener(ModelChangeListener modelChangeListener) {
+		viewListeners.add(modelChangeListener);
 
+		if (!disposing) {
+			if (modelChangeListener instanceof ModelChangeAddRemoveListener) {
+				final ModelChangeAddRemoveListener addRemove = (ModelChangeAddRemoveListener) modelChangeListener;
+				for (final Iterator<EObject> iter = EcoreUtil.getAllContents(singleton(viewModel)); iter.hasNext();) {
+					addRemove.notifyAdd(iter.next());
+				}
+			}
+		}
+	}
+
+	@Override
+	public void unregisterViewChangeListener(ModelChangeListener modelChangeListener) {
+		viewListeners.remove(modelChangeListener);
+
+		if (!disposing) {
+			if (modelChangeListener instanceof ModelChangeAddRemoveListener) {
+				final ModelChangeAddRemoveListener addRemove = (ModelChangeAddRemoveListener) modelChangeListener;
+				for (final Iterator<EObject> iter = EcoreUtil.getAllContents(singleton(viewModel)); iter.hasNext();) {
+					addRemove.notifyRemove(iter.next());
+				}
+			}
+		}
 	}
 
 	@Override
 	public void registerRootDomainModelChangeListener(
 		RootDomainModelChangeListener rootDomainModelChangeListener) {
 
+		rootListeners.add(rootDomainModelChangeListener);
 	}
 
 	@Override
@@ -92,12 +126,63 @@
 
 	@Override
 	public void changeDomainModel(EObject newDomainModel) {
+		if (parent != null) {
+			parent.removeChildContext(this, false);
+		} else {
+			dispose();
+		}
 
+		domainObject = newDomainModel;
+
+		parent.addChildContext(parentElement, this);
+
+		listeners.forEach(EMFFormsContextListener::contextInitialised);
+
+		rootListeners.forEach(RootDomainModelChangeListener::notifyChange);
+	}
+
+	public void initialize() {
+		listeners.forEach(EMFFormsContextListener::contextInitialised);
+	}
+
+	public void dispose() {
+		dispose(true);
+	}
+
+	void dispose(boolean permanently) {
+		final boolean oldDisposing = disposing;
+		disposing = permanently;
+		try {
+			listeners.forEach(EMFFormsContextListener::contextDispose);
+		} finally {
+			disposing = oldDisposing;
+		}
 	}
 
 	public void addChildContext(VElement vElement, FakeViewContext childContext) {
+		childContext.parent = this;
+		childContext.parentElement = vElement;
+
 		for (final EMFFormsContextListener listener : listeners) {
 			listener.childContextAdded(vElement, childContext);
+			listener.contextInitialised();
 		}
 	}
-}
\ No newline at end of file
+
+	public void removeChildContext(FakeViewContext childContext) {
+		childContext.dispose();
+
+		for (final EMFFormsContextListener listener : listeners) {
+			listener.childContextDisposed(childContext);
+		}
+	}
+
+	void removeChildContext(FakeViewContext childContext, boolean permanently) {
+		childContext.dispose(permanently);
+
+		for (final EMFFormsContextListener listener : listeners) {
+			listener.childContextDisposed(childContext);
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/InterfaceDelegator.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/InterfaceDelegator.java
new file mode 100644
index 0000000..11216ce
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/InterfaceDelegator.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.scoped;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.core.services.controlmapper.EMFFormsSettingToControlMapper;
+
+/**
+ * A delegator for testing default methods of the {@link EMFFormsSettingToControlMapper} interface.
+ */
+class InterfaceDelegator implements EMFFormsSettingToControlMapper {
+
+	private final EMFFormsSettingToControlMapper delegate;
+
+	/**
+	 * Initializes me with my delegate.
+	 */
+	InterfaceDelegator(EMFFormsSettingToControlMapper delegate) {
+		super();
+
+		this.delegate = delegate;
+	}
+
+	@Override
+	public Set<VControl> getControlsFor(Setting setting) {
+		return delegate.getControlsFor(setting);
+	}
+
+	@Override
+	public Set<VElement> getControlsFor(UniqueSetting setting) {
+		return delegate.getControlsFor(setting);
+	}
+
+	@Override
+	public void updateControlMapping(VControl vControl) {
+		delegate.updateControlMapping(vControl);
+	}
+
+	@Override
+	public void vControlAdded(VControl vControl) {
+		delegate.vControlAdded(vControl);
+	}
+
+	@Override
+	public void vControlRemoved(VControl vControl) {
+		delegate.vControlRemoved(vControl);
+	}
+
+	@Override
+	public void checkAndUpdateSettingToControlMapping(EObject eObject) {
+		delegate.checkAndUpdateSettingToControlMapping(eObject);
+	}
+
+	@Override
+	public boolean hasControlsFor(EObject eObject) {
+		return delegate.hasControlsFor(eObject);
+	}
+
+	@Override
+	public Collection<EObject> getEObjectsWithSettings() {
+		return delegate.getEObjectsWithSettings();
+	}
+
+	@Override
+	public Set<UniqueSetting> getSettingsForControl(VControl control) {
+		return delegate.getSettingsForControl(control);
+	}
+
+}
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 bcd5f1b..7d105e0 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
@@ -10,12 +10,15 @@
  *
  * Contributors:
  * Edgar Mueller - initial API and implementation
- * Christian W. Damus - bug 543190
+ * Christian W. Damus - bugs 543190, 527686
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.scoped;
 
+import static org.hamcrest.CoreMatchers.anything;
+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 static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -50,6 +53,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.EMFFormsSettingToControlMapper;
 import org.eclipse.emfforms.spi.core.services.controlmapper.SubControlMapper;
 import org.eclipse.emfforms.spi.core.services.mappingprovider.EMFFormsMappingProviderManager;
 import org.junit.Before;
@@ -95,6 +99,7 @@
 				}
 			});
 		mapper = new SettingToControlMapperImpl(mappingManager, context);
+		context.initialize();
 	}
 
 	@Test
@@ -188,7 +193,7 @@
 		assertEquals(2, mapper.getControlsFor(childSettingReferences).size());
 
 		// Verification that add control and add child context work is done by other test cases.
-		mapper.childContextDisposed(childContext);
+		context.removeChildContext(childContext);
 
 		// Verify that the mapping for the child setting is empty
 		final Set<UniqueSetting> settingsForControl = mapper.getSettingsForControl(childControl);
@@ -228,7 +233,7 @@
 		context.addChildContext(control, childContext);
 
 		mapper.vControlRemoved(childControl);
-		mapper.childContextDisposed(childContext);
+		context.removeChildContext(childContext);
 
 	}
 
@@ -311,7 +316,7 @@
 
 		// Verification that add control and add child context work is done by other test cases.
 		// mapper.vControlRemoved(childControl);
-		mapper.childContextDisposed(childContext);
+		context.removeChildContext(childContext);
 
 		final UniqueSetting parentSetting = UniqueSetting.createSetting(domainObject,
 			EcorePackage.eINSTANCE.getEClass_EAttributes());
@@ -374,6 +379,103 @@
 		assertThat(objects, hasItems(idAttribute, EcorePackage.Literals.ESTRING));
 	}
 
+	/**
+	 * Verify that we can handle the reuse of a child context and its controls for
+	 * another domain model object.
+	 */
+	@SuppressWarnings("nls")
+	@Test
+	public void childContextDomainModelChanged() {
+		// Setup and add child context with one control and one setting
+		final VView childView = VViewFactory.eINSTANCE.createView();
+		final VControl childControl = VViewFactory.eINSTANCE.createControl();
+		childControl.setDomainModelReference(EcorePackage.Literals.ECLASS__EATTRIBUTES);
+		childView.getChildren().add(childControl);
+		final EClass childDomainObject1 = EcoreFactory.eINSTANCE.createEClass();
+		childDomainObject1.setName("Child1");
+		final EClass childDomainObject2 = EcoreFactory.eINSTANCE.createEClass();
+		childDomainObject2.setName("Child2");
+
+		final FakeViewContext childContext = new FakeViewContext(childDomainObject1, childView);
+		context.addChildContext(control, childContext);
+
+		final UniqueSetting child1SettingAttributes = UniqueSetting.createSetting(childDomainObject1,
+			EcorePackage.Literals.ECLASS__EATTRIBUTES);
+		final UniqueSetting child1SettingReferences = UniqueSetting.createSetting(childDomainObject1,
+			EcorePackage.Literals.ECLASS__EREFERENCES);
+		assertThat(mapper.getControlsFor(child1SettingAttributes).size(), is(2));
+		assertThat(mapper.getControlsFor(child1SettingReferences).size(), is(2));
+
+		// Verification that add control and add child context work is done by other test cases.
+
+		// Change the domain model in the child context
+		childContext.changeDomainModel(childDomainObject2);
+
+		// Verify that the mappings are now for the other object
+		final Set<UniqueSetting> settingsForControl = mapper.getSettingsForControl(childControl);
+		assertThat(settingsForControl.size(), is(2));
+
+		final UniqueSetting child2SettingAttributes = UniqueSetting.createSetting(childDomainObject2,
+			EcorePackage.eINSTANCE.getEClass_EAttributes());
+		final UniqueSetting child2SettingReferences = UniqueSetting.createSetting(childDomainObject2,
+			EcorePackage.eINSTANCE.getEClass_EReferences());
+		assertThat(settingsForControl, hasItems(child2SettingAttributes, child2SettingReferences));
+		assertThat(mapper.getControlsFor(child2SettingAttributes).size(), is(2));
+		assertThat(mapper.getControlsFor(child2SettingReferences).size(), is(2));
+		assertThat(mapper.getControlsFor(child2SettingAttributes), hasItems(control, childControl));
+
+		// There's nothing now for the original object
+		assertThat(mapper.getControlsFor(child1SettingAttributes), not(hasItem(anything())));
+		assertThat(mapper.getControlsFor(child1SettingReferences), not(hasItem(anything())));
+	}
+
+	/**
+	 * Verify the {@link EMFFormsSettingToControlMapper#hasMapping(UniqueSetting, VElement)}
+	 * implementation.
+	 */
+	@Test
+	public void hasMapping_UniqueSetting_VElement() {
+		hasMapping_UniqueSetting_VElement(mapper);
+	}
+
+	@SuppressWarnings("nls")
+	private void hasMapping_UniqueSetting_VElement(EMFFormsSettingToControlMapper mapper) {
+		// Setup and add child context with one control and one setting
+		final VView childView = VViewFactory.eINSTANCE.createView();
+		final VControl childControl = VViewFactory.eINSTANCE.createControl();
+		childControl.setDomainModelReference(EcorePackage.Literals.ECLASS__EATTRIBUTES);
+		childView.getChildren().add(childControl);
+		final EClass childDomainObject = EcoreFactory.eINSTANCE.createEClass();
+		childDomainObject.setName("Child");
+
+		final FakeViewContext childContext = new FakeViewContext(childDomainObject, childView);
+		context.addChildContext(control, childContext);
+
+		final UniqueSetting childSetting = UniqueSetting.createSetting(childDomainObject,
+			EcorePackage.Literals.ECLASS__EATTRIBUTES);
+
+		assertThat("No child mapping", mapper.hasMapping(childSetting, childControl), is(true));
+		assertThat("No parent mapping", mapper.hasMapping(childSetting, control), is(true));
+
+		context.removeChildContext(childContext);
+
+		assertThat("Still have child mapping", mapper.hasMapping(childSetting, childControl), is(false));
+		assertThat("Still have parent mapping", mapper.hasMapping(childSetting, control), is(false));
+	}
+
+	/**
+	 * Verify the {@link EMFFormsSettingToControlMapper#hasMapping(UniqueSetting, VElement)}
+	 * default method.
+	 */
+	@Test
+	public void hasMapping_default_UniqueSetting_VElement() {
+		hasMapping_UniqueSetting_VElement(new InterfaceDelegator(mapper));
+	}
+
+	//
+	// Test framework
+	//
+
 	@SafeVarargs
 	static <T> Set<T> set(T... elements) {
 		return new LinkedHashSet<>(Arrays.asList(elements));
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllIntegrationTests.java
index cdabbdc..e041702 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllIntegrationTests.java
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllIntegrationTests.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 2.0
@@ -10,9 +10,11 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.tests;
 
+import org.eclipse.emfforms.internal.core.services.reveal.EMFFormsRevealServiceImpl_ITest;
 import org.eclipse.emfforms.internal.core.services.scoped.EMFFormsScopedServicesFactoryImpl_ITest;
 import org.eclipse.emfforms.internal.core.services.scoped.SettingToControlMapper_ITest;
 import org.junit.runner.RunWith;
@@ -22,7 +24,8 @@
 @RunWith(Suite.class)
 @SuiteClasses({
 	EMFFormsScopedServicesFactoryImpl_ITest.class,
-	SettingToControlMapper_ITest.class
+	SettingToControlMapper_ITest.class,
+	EMFFormsRevealServiceImpl_ITest.class,
 })
 public class AllIntegrationTests {
 
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllTests.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllTests.java
index 889cc20..a45d81f 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/AllTests.java
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/tests/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 2.0
@@ -10,16 +10,21 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 527686
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.tests;
 
+import org.eclipse.emfforms.core.services.view.EMFFormsContextTracker_Test;
 import org.eclipse.emfforms.internal.core.services.scoped.EMFFormsScopedServicesFactoryImpl_Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
-@SuiteClasses({ EMFFormsScopedServicesFactoryImpl_Test.class })
+@SuiteClasses({
+	EMFFormsScopedServicesFactoryImpl_Test.class,
+	EMFFormsContextTracker_Test.class,
+})
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 2f33302..dc0a94f 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DataTemplate Tests
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.tooling.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.datatemplate.tooling;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.datatemplate.tooling;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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.datatemplate.tooling.tests
diff --git a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/pom.xml b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/pom.xml
index 8daf5d3..60f34ad 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer_Test.java b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer_Test.java
index defe984..ddaa29f 100644
--- a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer_Test.java
+++ b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/TemplateInstanceRenderer_Test.java
@@ -34,7 +34,7 @@
 	@Before
 	public void setUp() throws Exception {
 		renderer = new TemplateInstanceRenderer(mock(VControl.class), mock(ViewModelContext.class),
-			mock(ReportService.class), null, null, null, null, null, null);
+			mock(ReportService.class), null, null, null, null, null);
 	}
 
 	@Test
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.editor.ecore.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditor_PTest.launch b/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditor_PTest.launch
index 2ecfa45..478a9e6 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditor_PTest.launch
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditor_PTest.launch
@@ -11,7 +11,7 @@
 <booleanAttribute key="clearwslog" value="false"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
 <booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="ViewModelProjectTemplate,ecp.api.baseline,org.eclipse.emf.ecp.application.e3,org.eclipse.emf.ecp.application.e4,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.test,org.eclipse.emf.ecp.core.emffilter,org.eclipse.emf.ecp.core.rap,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.core.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.edit.swt.test,org.eclipse.emf.ecp.emf2web.json.test,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.search,org.eclipse.emf.ecp.examplemodel.ui,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.templatebridge,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util,org.eclipse.emf.ecp.ide.util.test,org.eclipse.emf.ecp.ide.view.service,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.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.common,org.eclipse.emf.ecp.test.model,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.ui.view.swt.test,org.eclipse.emf.ecp.ui.view.test,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.edit,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.context.tests,org.eclipse.emf.ecp.view.control.multireference.tests,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.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.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.model.edit,org.eclipse.emf.ecp.view.horizontal.ui.swt.test,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.model.edit,org.eclipse.emf.ecp.view.label.ui.swt,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.common.test,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.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.model.provider.xmi.test,org.eclipse.emf.ecp.view.model.test,org.eclipse.emf.ecp.view.rule,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.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.model.test,org.eclipse.emf.ecp.view.table.ui.nebula.grid,org.eclipse.emf.ecp.view.table.ui.rcp,org.eclipse.emf.ecp.view.table.ui.swt.persistedstate,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.template.model.edit,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.template.tooling,org.eclipse.emf.ecp.view.test.common,org.eclipse.emf.ecp.view.test.common.swt,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test,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.validation.test,org.eclipse.emf.ecp.view.vertical.model.edit,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.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.rap.edit.ui.minimal,org.eclipse.emfforms.common.tests,org.eclipse.emfforms.core.services.databinding.featurepath.tests,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.tests,org.eclipse.emfforms.core.services.databinding.testmodel,org.eclipse.emfforms.core.services.domainexpander.default.tests,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.tests,org.eclipse.emfforms.core.services.emf.tests,org.eclipse.emfforms.core.services.legacy.tests,org.eclipse.emfforms.core.services.structuralchange.keyattribute,org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests,org.eclipse.emfforms.core.services.tests,org.eclipse.emfforms.editor.genmodel.util,org.eclipse.emfforms.editor.viewmodel,org.eclipse.emfforms.localization.tests,org.eclipse.emfforms.rulerepository.model,org.eclipse.emfforms.rulerepository.model.edit,org.eclipse.emfforms.rulerepository.tooling,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.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.extension.tests,org.eclipse.emfforms.swt.core.di.tests,org.eclipse.emfforms.swt.core.tests,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.tests,org.eclipsesource.editor.example"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.ecp.application.e3,org.eclipse.emf.ecp.application.e4,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.core.emffilter,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.edit.swt.test,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.search,org.eclipse.emf.ecp.examplemodel.ui,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.templatebridge,org.eclipse.emf.ecp.ide.editor.view.test,org.eclipse.emf.ecp.ide.editor.viewmodel,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.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.test.model,org.eclipse.emf.ecp.test.model.edit,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.e4,org.eclipse.emf.ecp.ui.rcp,org.eclipse.emf.ecp.ui.transaction,org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ui.validation.test,org.eclipse.emf.ecp.ui.view.editor.controls.blockinguitests,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.validation.connector,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.edit.test,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.context.tests,org.eclipse.emf.ecp.view.control.multireference.tests,org.eclipse.emf.ecp.view.core.swt.tests,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.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.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.model.edit,org.eclipse.emf.ecp.view.horizontal.ui.swt.test,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.model.edit,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.migrator.test,org.eclipse.emf.ecp.view.model.common.test,org.eclipse.emf.ecp.view.model.edapt,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.integrationtest,org.eclipse.emf.ecp.view.model.preview.common,org.eclipse.emf.ecp.view.model.preview.common.test,org.eclipse.emf.ecp.view.model.preview.e3,org.eclipse.emf.ecp.view.model.project.installer,org.eclipse.emf.ecp.view.model.provider.generator.test,org.eclipse.emf.ecp.view.model.provider.xmi.test,org.eclipse.emf.ecp.view.model.test,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.section.ui.swt.test,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.table.celleditor.rcp,org.eclipse.emf.ecp.view.table.edapt,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.model.test,org.eclipse.emf.ecp.view.table.test.common,org.eclipse.emf.ecp.view.table.ui.nebula.grid,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.persistedstate,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.table.validation.test,org.eclipse.emf.ecp.view.template.model.test,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.template.tooling,org.eclipse.emf.ecp.view.template.tooling.test,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test,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.validation.bean,org.eclipse.emf.ecp.view.validation.bean.default,org.eclipse.emf.ecp.view.validation.bean.test,org.eclipse.emf.ecp.view.validation.test,org.eclipse.emf.ecp.view.vertical.model.edit,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.rap.edit.ui.minimal,org.eclipse.emfforms.common.tests,org.eclipse.emfforms.common.validation.tests,org.eclipse.emfforms.core.bazaar.tests,org.eclipse.emfforms.core.services.databinding.featurepath.tests,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.tests,org.eclipse.emfforms.core.services.databinding.testmodel,org.eclipse.emfforms.core.services.datatemplate.test,org.eclipse.emfforms.core.services.domainexpander.default.tests,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.tests,org.eclipse.emfforms.core.services.emf.tests,org.eclipse.emfforms.core.services.legacy.tests,org.eclipse.emfforms.core.services.mappingprovider.table.panel.test,org.eclipse.emfforms.core.services.mappingprovider.table.test,org.eclipse.emfforms.core.services.segments.featurepath.test,org.eclipse.emfforms.core.services.segments.index.test,org.eclipse.emfforms.core.services.segments.mapping.test,org.eclipse.emfforms.core.services.segments.multi.test,org.eclipse.emfforms.core.services.segments.test,org.eclipse.emfforms.core.services.structuralchange.keyattribute,org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests,org.eclipse.emfforms.core.services.structuralchange.test,org.eclipse.emfforms.core.services.tests,org.eclipse.emfforms.datatemplate.tooling.tests,org.eclipse.emfforms.editor.genmodel.util,org.eclipse.emfforms.editor.viewmodel,org.eclipse.emfforms.ide.builder.test,org.eclipse.emfforms.ide.view.mappingsegment.test,org.eclipse.emfforms.ide.view.multisegment.test,org.eclipse.emfforms.ide.view.multisegment.test.uithread,org.eclipse.emfforms.localization.tests,org.eclipse.emfforms.rulerepository.model,org.eclipse.emfforms.rulerepository.model.edit,org.eclipse.emfforms.rulerepository.tooling,org.eclipse.emfforms.rulerepository.tooling.test,org.eclipse.emfforms.swt.common.test,org.eclipse.emfforms.swt.control.multiattribute.tests,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.extension.tests,org.eclipse.emfforms.swt.core.di.tests,org.eclipse.emfforms.swt.core.tests,org.eclipse.emfforms.swt.reference.table.test,org.eclipse.emfforms.swt.table.test,org.eclipse.emfforms.swt.treemasterdetail.test,org.eclipse.emfforms.view.annotation.model.edit,org.eclipse.emfforms.view.controlgrid.model.edit,org.eclipse.emfforms.view.model.localization.tests"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -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.spi.editor.EcoreEditor_PTest"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -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,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.7.0.v201011041433@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.apache.batik.util.gui*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.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.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.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.debug.core@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.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@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.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.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.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.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.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@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.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@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.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.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.editor.ecore.test@default:false,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor.genmodel@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.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.decorator.validation.default@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,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*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.xmlgraphics@default:default,org.apiguardian@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.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.macosx@default:false,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.debug.core@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.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@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.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.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.util@default:default,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.jdt.annotation*2.2.300.v20190328-1431@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.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.cocoa.macosx.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.swtbot.eclipse.finder@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.cocoa@default:false,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.eclipse.xtext.logging@default:false,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit.platform.commons@default:default,org.junit.platform.engine@default:default,org.junit.platform.launcher@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.opentest4j@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.test@default:false,org.eclipse.emf.ecp.common.ui.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@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.migration@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.ui.validation@default:default,org.eclipse.emf.ecp.ui.view.editor.controls.legacy@default:default,org.eclipse.emf.ecp.ui.view.editor.controls@default:default,org.eclipse.emf.ecp.ui.view.swt.di@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.validation.diagnostician@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.custom.model@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.rule@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@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.annotation.model.edit@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model.edit@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.ecp.workspace.core@default:default,org.eclipse.emfforms.coffee.model.edit@default:default,org.eclipse.emfforms.coffee.model.viewmodel@default:default,org.eclipse.emfforms.coffee.model@default:default,org.eclipse.emfforms.coffee.wizards@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.datatemplate@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.datatemplate.model.edit@default:default,org.eclipse.emfforms.datatemplate.model@default:default,org.eclipse.emfforms.datatemplate.tooling@default:default,org.eclipse.emfforms.editor.ecore.test@default:false,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor.genmodel@default:default,org.eclipse.emfforms.editor.test@default:false,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.example.common.wizards@default:default,org.eclipse.emfforms.ide.builder@default:default,org.eclipse.emfforms.ide.datatemplate.builder@default:default,org.eclipse.emfforms.ide.ecore.builder@default:default,org.eclipse.emfforms.ide.view.indexsegment@default:default,org.eclipse.emfforms.ide.view.mappingsegment@default:default,org.eclipse.emfforms.ide.view.multisegment@default:default,org.eclipse.emfforms.ide.view.segments@default:default,org.eclipse.emfforms.ide.viewtemplate.builder@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.setup.base@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@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.reference.table@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.edit@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model.edit@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model.edit@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.editor.ecore.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.editor.ecore.test/META-INF/MANIFEST.MF
index d1afc98..ba222d9 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,61 +2,62 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Ecore Editor Test
 Bundle-SymbolicName: org.eclipse.emfforms.editor.ecore.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)"
+Fragment-Host: org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.editor.ecore;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
- org.eclipse.emf.ecp.view.group.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.setup.base;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.common.validation;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.setup.base;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.spi.swt.core.di;version="[1.21.0,1.22.0)";resolution:=optional,
+ org.eclipse.e4.core.contexts;version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.bazaar;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.22.0,1.23.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/pom.xml b/tests/org.eclipse.emfforms.editor.ecore.test/pom.xml
index 163e600..bc69fbe 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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/EcoreEditor_PTest.java b/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditor_PTest.java
index fa00fcc..50e2a1c 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditor_PTest.java
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditor_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 2.0
@@ -10,42 +10,75 @@
  *
  * Contributors:
  * Alexandra Buzila - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.spi.editor;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.anyString;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Hashtable;
+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.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.emf.common.util.URI;
 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;
+import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emfforms.internal.editor.ecore.EcoreEditor;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
+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.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IURIEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.contexts.IContextService;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceRegistration;
 
 /**
  * Tests for the {@link EcoreEditor}.
@@ -57,6 +90,7 @@
  *
  */
 @SuppressWarnings("restriction")
+@RunWith(MockitoJUnitRunner.class)
 public class EcoreEditor_PTest {
 	private static final String EMFFORMS_EDITOR_TEST_PROJECT_NAME = "org.eclipse.emfforms.ecore.editor.test"; //$NON-NLS-1$
 	private static final String LOCAL_TEST_DATA = "/data/"; //$NON-NLS-1$
@@ -66,28 +100,32 @@
 	private EcoreEditor editor;
 	private IFile genModelFile;
 
+	@Mock(answer = Answers.RETURNS_MOCKS)
+	private IEditorSite site;
+	private ISelectionProvider selectionProvider;
+
+	@Mock
+	private EMFFormsViewServiceFactory<EMFFormsRevealService> revealServiceFactory;
+	@Mock
+	private EMFFormsRevealService revealService;
+	private ServiceRegistration<?> revealServiceFactoryReg;
+
 	@Before
 	public void setup() throws IOException, CoreException, URISyntaxException {
-		editor = new EcoreEditor() {
-		};
-		final IEditorSite site = mock(IEditorSite.class);
-		when(site.getService(IContextService.class)).thenAnswer(new Answer<IContextService>() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(EcoreEditor_PTest.class).getBundleContext();
+		when(revealServiceFactory.getPolicy()).thenReturn(EMFFormsViewServicePolicy.IMMEDIATE);
+		when(revealServiceFactory.getScope()).thenReturn(EMFFormsViewServiceScope.GLOBAL);
+		when(revealServiceFactory.getPriority()).thenReturn(Double.MAX_VALUE);
+		when(revealServiceFactory.getType()).thenReturn(EMFFormsRevealService.class);
+		when(revealServiceFactory.createService(any(EMFFormsViewContext.class))).thenReturn(revealService);
+		revealServiceFactoryReg = bundleContext.registerService(EMFFormsViewServiceFactory.class, revealServiceFactory,
+			new Hashtable<>());
 
-			@Override
-			public IContextService answer(InvocationOnMock invocation) throws Throwable {
-				final IContextService contextService = mock(IContextService.class);
-				when(contextService.activateContext(anyString())).thenReturn(null);
-				return contextService;
-			}
-		});
-		when(site.getPage()).thenAnswer(new Answer<IWorkbenchPage>() {
-
-			@Override
-			public IWorkbenchPage answer(InvocationOnMock invocation) throws Throwable {
-				final IWorkbenchPage page = mock(IWorkbenchPage.class);
-				return page;
-			}
-		});
+		doReturn(EclipseContextFactory.createServiceContext(bundleContext)).when(site)
+			.getService(IEclipseContext.class);
+		doAnswer(invocation -> selectionProvider).when(site).getSelectionProvider();
+		doAnswer(invocation -> selectionProvider = (ISelectionProvider) invocation.getArguments()[0])
+			.when(site).setSelectionProvider(any(ISelectionProvider.class));
 		createEcoreAndGenModelFiles();
 
 		final IURIEditorInput input = mock(IURIEditorInput.class);
@@ -97,8 +135,16 @@
 			.thenReturn(new java.net.URI(URI.createFileURI(ecoreFile.getLocation().toString()).toString()));
 		when(input.getAdapter(IFile.class)).thenReturn(ecoreFile);
 
+		editor = new EcoreEditor();
 		editor.init(site, input);
 		editor.createPartControl(new Shell());
+
+		assumeThat("No selection provider set", selectionProvider, notNullValue()); //$NON-NLS-1$
+	}
+
+	@After
+	public void tearDown() {
+		revealServiceFactoryReg.unregister();
 	}
 
 	/**
@@ -134,6 +180,48 @@
 
 	}
 
+	@Test
+	public void testNavigateGenericEditorStyleMarker() {
+		final Resource res = editor.getResourceSet().getResources().get(0);
+		final URI resourceURI = res.getURI();
+		final String fragment = "//Element/diagnostic"; //$NON-NLS-1$
+		final URI featureURI = EcoreUtil.getURI(EcorePackage.Literals.ENAMED_ELEMENT__NAME);
+
+		final IMarker marker = mockMarker("RESOURCE_URI", resourceURI.toString(), //$NON-NLS-1$
+			"FRAGMENT_URI" /* (sic) */, fragment, //$NON-NLS-1$
+			"FEATURE_URI", featureURI.toString()); //$NON-NLS-1$
+
+		testNavigate(marker);
+	}
+
+	private void testNavigate(IMarker marker) {
+		editor.gotoMarker(marker);
+
+		SWTTestUtil.waitForUIThread();
+
+		final ISelection selection = selectionProvider.getSelection();
+		assertThat(selection, instanceOf(IStructuredSelection.class));
+		final Object selected = ((IStructuredSelection) selection).getFirstElement();
+		assertThat(selected, instanceOf(EReference.class));
+		final EReference reference = (EReference) selected;
+		assertThat(reference.getName(), is("diagnostic")); //$NON-NLS-1$
+
+		verify(revealService).reveal(reference, EcorePackage.Literals.ENAMED_ELEMENT__NAME);
+	}
+
+	@Test
+	public void testNavigateEMFStyleMarker() {
+		final Resource res = editor.getResourceSet().getResources().get(0);
+		final URI objectURI = res.getURI().appendFragment("//Element/diagnostic"); //$NON-NLS-1$
+		final URI featureURI = EcoreUtil.getURI(EcorePackage.Literals.ENAMED_ELEMENT__NAME);
+
+		final IMarker marker = mockMarker(
+			EValidator.URI_ATTRIBUTE, objectURI.toString(),
+			EValidator.RELATED_URIS_ATTRIBUTE, URI.encodeFragment(featureURI.toString(), false));
+
+		testNavigate(marker);
+	}
+
 	private void createEcoreAndGenModelFiles() throws CoreException {
 		final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(EMFFORMS_EDITOR_TEST_PROJECT_NAME);
 		if (!project.exists()) {
@@ -151,4 +239,29 @@
 				IResource.NONE, null);
 		}
 	}
+
+	IMarker mockMarker(String key, String value, String... more) {
+		assert more.length % 2 == 0 : "odd number of strings for attributes"; //$NON-NLS-1$
+		final Map<String, String> attributes = new HashMap<String, String>();
+		attributes.put(key, value);
+		for (int i = 0; i < more.length; i = i + 2) {
+			attributes.put(more[i], more[i + 1]);
+		}
+
+		final IMarker result = mock(IMarker.class);
+
+		try {
+			when(result.getAttribute(any(String.class)))
+				.then(invocation -> attributes.get(invocation.getArguments()[0]));
+			when(result.getAttribute(any(String.class), any(String.class))).then(
+				invocation -> attributes.getOrDefault(invocation.getArguments()[0],
+					(String) invocation.getArguments()[1]));
+		} catch (final CoreException e) {
+			e.printStackTrace();
+			fail("Mock threw during stubbing"); //$NON-NLS-1$
+		}
+
+		return result;
+	}
+
 }
diff --git a/tests/org.eclipse.emfforms.editor.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.editor.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.editor.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.editor.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.editor.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.editor.test/META-INF/MANIFEST.MF
index 44d94f4..fdb9826 100644
--- a/tests/org.eclipse.emfforms.editor.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.editor.test/META-INF/MANIFEST.MF
@@ -2,10 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Editor Tests
 Bundle-SymbolicName: org.eclipse.emfforms.editor.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.editor;bundle-version="[1.21.0,1.22.0)"
-Automatic-Module-Name: org.eclipse.emfforms.editor.tests
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)"
-Export-Package: org.eclipse.emfforms.spi.editor.helpers;version="1.21.0"
+Fragment-Host: org.eclipse.emfforms.editor;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.spi.editor;version="1.22.0",
+ org.eclipse.emfforms.spi.editor.helpers;version="1.22.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)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.editor.tests
+Import-Package: org.eclipse.emf.ecp.view.test.common.spi;version="[1.22.0,1.23.0)"
diff --git a/tests/org.eclipse.emfforms.editor.test/pom.xml b/tests/org.eclipse.emfforms.editor.test/pom.xml
index 32dfc01..b11aca6 100644
--- a/tests/org.eclipse.emfforms.editor.test/pom.xml
+++ b/tests/org.eclipse.emfforms.editor.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.editor.test</artifactId>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 </project>
diff --git a/tests/org.eclipse.emfforms.editor.test/src/org/eclipse/emfforms/spi/editor/GotoMarkerAdapter_Test.java b/tests/org.eclipse.emfforms.editor.test/src/org/eclipse/emfforms/spi/editor/GotoMarkerAdapter_Test.java
new file mode 100644
index 0000000..54e17b2
--- /dev/null
+++ b/tests/org.eclipse.emfforms.editor.test/src/org/eclipse/emfforms/spi/editor/GotoMarkerAdapter_Test.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.editor;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.sameInstance;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.fail;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealService;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/**
+ * Unit tests for the {@link GotoMarkerAdapter} class.
+ */
+@SuppressWarnings("nls")
+@RunWith(EMFMockingRunner.class)
+public class GotoMarkerAdapter_Test {
+	private final EStructuralFeature feature = EcorePackage.Literals.ECLASS__ABSTRACT;
+
+	@Mock
+	private ViewModelContext context;
+
+	@EMock
+	private VView view;
+
+	@Mock(extraInterfaces = Resource.Internal.class)
+	private Resource resource;
+
+	@EMock
+	private EObject object;
+
+	@Mock
+	private IMarker marker;
+
+	@Mock
+	private EMFFormsRevealService revealService;
+
+	private EditingDomain domain;
+	private GotoMarkerAdapter adapter;
+
+	/**
+	 * Initializes me.
+	 */
+	public GotoMarkerAdapter_Test() {
+		super();
+	}
+
+	@Test
+	public void gotoMarker() {
+		adapter.gotoMarker(marker);
+
+		verify(revealService).reveal(object);
+	}
+
+	@Test
+	public void gotoMarker_withFeature() {
+		mockFeature();
+
+		adapter.gotoMarker(marker);
+
+		verify(revealService).reveal(object, feature);
+	}
+
+	@Test
+	public void getEObject() {
+		final List<?> targets = new EditUIMarkerHelper().getTargetObjects(domain, marker);
+		assertThat("Wrong EObject found", adapter.getEObject(targets), sameInstance(object));
+	}
+
+	@Test
+	public void getEStructuralFeature() {
+		final List<?> targets = new EditUIMarkerHelper().getTargetObjects(domain, marker);
+		assertThat("Wrong EStructuralFeature found", adapter.getEObject(targets), sameInstance(object));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void mockup() throws CoreException {
+		final URI uri = URI.createURI("fake://bogus.xmi");
+		final String fragment = "e0b1ec7";
+		when(resource.getURI()).thenReturn(uri);
+		when(resource.getEObject(fragment)).thenReturn(object);
+		when(resource.getURIFragment(object)).thenReturn(fragment);
+
+		final String uriValue = uri.appendFragment(fragment).toString();
+		when(marker.getAttribute(EValidator.URI_ATTRIBUTE)).thenReturn(uriValue);
+		when(marker.getAttribute(argThat(is(EValidator.URI_ATTRIBUTE)), anyString())).thenReturn(uriValue);
+		when(context.getService(EMFFormsRevealService.class)).thenReturn(revealService);
+	}
+
+	@Before
+	public void createFixture() {
+		domain = new AdapterFactoryEditingDomain(new ComposedAdapterFactory(), new BasicCommandStack());
+		domain.getResourceSet().getResources().add(resource);
+		adapter = new GotoMarkerAdapter(context, domain);
+	}
+
+	void mockFeature() {
+		try {
+			final String featureURI = EcoreUtil.getURI(feature).toString();
+			when(marker.getAttribute(EValidator.RELATED_URIS_ATTRIBUTE)).thenReturn(featureURI);
+			when(marker.getAttribute(argThat(is(EValidator.RELATED_URIS_ATTRIBUTE)), anyString()))
+				.thenReturn(featureURI);
+		} catch (final CoreException e) {
+			e.printStackTrace();
+			fail("Mock threw exception in stubbing: " + e.getMessage());
+		}
+	}
+
+}
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
index e4e3c00..cfb400b 100644
--- 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
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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
index 92ad51f..5d674ed 100644
--- a/tests/org.eclipse.emfforms.ide.builder.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.ide.builder.test/META-INF/MANIFEST.MF
@@ -2,20 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test plugin for EMFForms IDE Builder
 Bundle-SymbolicName: org.eclipse.emfforms.ide.builder.test;singleton:=true
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.ide.builder;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.ide.builder.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.ide.builder;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.ide.builder.test;version="1.22.0";x-internal:=true
 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.21.0,1.22.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.22.0,1.23.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
+Import-Package: javax.inject;version="1.0.0"
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/pom.xml b/tests/org.eclipse.emfforms.ide.builder.test/pom.xml
index d9aa1f0..bd7f095 100644
--- a/tests/org.eclipse.emfforms.ide.builder.test/pom.xml
+++ b/tests/org.eclipse.emfforms.ide.builder.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
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
index 0aacdab..e289a16 100644
--- a/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/ValidationError.view
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/ValidationError.view
@@ -6,12 +6,12 @@
       <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">
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_mfPLkEWAEeWfKJaajyNdyB" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_mfPLkUWAEeWfKJaajyNdyB">
       <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="_mfPLkEWAEeWfKJaajyNdyC" 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">
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
index 3db13cb..9500823 100644
--- 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
@@ -10,7 +10,7 @@
  *
  * Contributors:
  * EclipseSource - initial API and implementation
- * Christian W. Damus - bugs 544499, 545418
+ * Christian W. Damus - bugs 544499, 545418, 548592
  ******************************************************************************/
 package org.eclipse.emfforms.ide.builder;
 
@@ -34,6 +34,8 @@
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.jobs.Job;
+import org.hamcrest.FeatureMatcher;
+import org.hamcrest.Matcher;
 import org.junit.Before;
 
 /**
@@ -106,4 +108,22 @@
 			fail("Test interrupted waiting for workspace build: " + e.getMessage()); //$NON-NLS-1$
 		}
 	}
+
+	/**
+	 * Obtain a matcher that asserts the value of an attribute of a marker.
+	 *
+	 * @param name the name of the attribute to verify
+	 * @param matcher a matcher to test the attribute value
+	 * @return the marker matcher
+	 */
+	protected static Matcher<IMarker> hasAttributeThat(String name, Matcher<String> matcher) {
+		return new FeatureMatcher<IMarker, String>(matcher, String.format("marker with attribute '%s' that", name),
+			name) {
+			@Override
+			protected String featureValueOf(IMarker actual) {
+				return actual.getAttribute(name, null);
+			}
+		};
+	}
+
 }
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
index fc12781..768f40c 100644
--- 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
@@ -10,13 +10,16 @@
  *
  * Contributors:
  * EclipseSource - initial API and implementation
- * Christian W. Damus - bugs 544499, 545418
+ * Christian W. Damus - bugs 544499, 545418, 548592
  ******************************************************************************/
 package org.eclipse.emfforms.ide.builder;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.both;
+import static org.hamcrest.Matchers.endsWith;
 import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.hasItemInArray;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -28,6 +31,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emfforms.ide.internal.builder.ProjectNature;
 import org.eclipse.emfforms.ide.internal.builder.ValidationNature;
 import org.eclipse.emfforms.ide.internal.builder.ViewModelBuilder;
@@ -187,4 +191,36 @@
 		assertThat("Should not have error markers", markers, is(new IMarker[0]));
 	}
 
+	@Test
+	public void validationMarkerAttributes() 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
+		assertThat("Should not have any markers", markers.length, is(0));
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ViewModelNature.NATURE_ID);
+		waitForAutoBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+
+		// at least 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
+		assertThat("Too few markers", markers.length, greaterThan(3));
+		assertThat("No marker on DMR unresolved structural feature", markers,
+			hasItemInArray(both(hasAttributeThat(EValidator.URI_ATTRIBUTE, endsWith("#_mfPLkEWAEeWfKJaajyNdyA"))).and(
+				hasAttributeThat(EValidator.RELATED_URIS_ATTRIBUTE, endsWith("/domainModelReference")))));
+		assertThat("No marker on control that has no DMR", markers,
+			hasItemInArray(both(hasAttributeThat(EValidator.URI_ATTRIBUTE, endsWith("#_mfPLkEWAEeWfKJaajyNdyC"))).and(
+				hasAttributeThat(EValidator.RELATED_URIS_ATTRIBUTE, endsWith("/domainModelReference")))));
+		assertThat("No marker on keyless annotation", markers,
+			hasItemInArray(both(hasAttributeThat(EValidator.URI_ATTRIBUTE, endsWith("#_ZE-1ABs2EemWJdWNOROymw"))).and(
+				hasAttributeThat(EValidator.RELATED_URIS_ATTRIBUTE, endsWith("/key")))));
+	}
+
 }
diff --git a/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/META-INF/MANIFEST.MF
index c6b995b..7cccc46 100644
--- a/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Mapping Segment IDE Tooling Tests
 Bundle-SymbolicName: org.eclipse.emfforms.ide.view.mappingsegment.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.ide.view.mappingsegment;bundle-version="[1.21.0,1.22.0)"
-Automatic-Module-Name: org.eclipse.emfforms.ide.view.mappingsegment.test
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.ide.view.mappingsegment;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.ide.view.mappingsegment;version="1.22.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.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.swtbot.junit4_x;bundle-version="[2.7.0,3.0.0)",
  org.apache.log4j;bundle-version="[1.2.15,2.0.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.ide.view.mappingsegment;version="1.21.0";x-internal:=true
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.22.0,1.23.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.ide.view.mappingsegment.test
 Import-Package: org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
diff --git a/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/pom.xml b/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/pom.xml
index 2696006..4e95f8b 100644
--- a/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/pom.xml
+++ b/tests/org.eclipse.emfforms.ide.view.mappingsegment.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.ide.view.mappingsegment.test</artifactId>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/META-INF/MANIFEST.MF
index 11aee42..868e897 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Multi Segment IDE Tooling Tests (UI Thread)
 Bundle-SymbolicName: org.eclipse.emfforms.ide.view.multisegment.test.uithread
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.ide.view.multisegment;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.ide.view.multisegment.test.nouithread;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.view.multisegment.tooling;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.ide.view.multisegment;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.ide.view.multisegment.test.nouithread;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.view.multisegment.tooling;version="1.22.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.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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.ide.view.multisegment.test.nouiharness
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/pom.xml b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/pom.xml
index 3fec4d7..4d72cc1 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/pom.xml
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.ide.view.multisegment.test.uithread</artifactId>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrsSWTRenderer_PTest.java b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrsSWTRenderer_PTest.java
index 7e3ab75..d96104c 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrsSWTRenderer_PTest.java
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test.uithread/src/org/eclipse/emfforms/internal/view/multisegment/tooling/MultiSegmentChildDmrsSWTRenderer_PTest.java
@@ -396,7 +396,7 @@
 
 		final Control render = renderer.render(new SWTGridCell(0, 2, renderer), shell);
 		renderer.finalizeRendering(shell);
-
+		shell.layout(true, true);
 		final Table dmrTable = SWTTestUtil.findControl(render, 0, Table.class);
 		assertEquals("Table column count", 1, dmrTable.getColumnCount()); //$NON-NLS-1$
 
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.ide.view.multisegment.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.ide.view.multisegment.test/META-INF/MANIFEST.MF
index 3c0fa28..ecf4fae 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Multi Segment IDE Tooling Tests
 Bundle-SymbolicName: org.eclipse.emfforms.ide.view.multisegment.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.ide.view.multisegment;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.ide.view.multisegment.test;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.view.multisegment.tooling;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.ide.view.multisegment;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.ide.view.multisegment.test;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.view.multisegment.tooling;version="1.22.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.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.view.test.common.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
  org.apache.log4j;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.emf.databinding.edit;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.swtbot.junit4_x;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.ide.view.multisegment.test
diff --git a/tests/org.eclipse.emfforms.ide.view.multisegment.test/pom.xml b/tests/org.eclipse.emfforms.ide.view.multisegment.test/pom.xml
index e6ecd70..8d70d82 100644
--- a/tests/org.eclipse.emfforms.ide.view.multisegment.test/pom.xml
+++ b/tests/org.eclipse.emfforms.ide.view.multisegment.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.ide.view.multisegment.test</artifactId>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.ide.view.segments.test/.checkstyle b/tests/org.eclipse.emfforms.ide.view.segments.test/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.classpath b/tests/org.eclipse.emfforms.ide.view.segments.test/.classpath
new file mode 100644
index 0000000..3e5654f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.emfforms.ide.view.segments.test/.project b/tests/org.eclipse.emfforms.ide.view.segments.test/.project
new file mode 100644
index 0000000..4f9af51
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..557976e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,419 @@
+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=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.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.view.segments.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..6ed4937
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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">/**\n * @return the ${bare_field_name}\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">/**\n * @param ${param} the ${bare_field_name} to set\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">/**\n * ${tags}\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">/*******************************************************************************\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n * \n * Contributors\:\n * ${user} - initial API and implementation\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">/**\n * @author ${user}\n *\n * ${tags}\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">/**\n * ${tags}\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">/**\n * {@inheritDoc}\n * ${see_to_overridden}\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">/**\n * ${tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\n\t\t\t// Log AND handle Exceptions if possible \n            //\n            // You can just uncomment one of the lines below to log an exception\:\n\t\t\t// logException will show the logged excpetion to the user\n\t\t\t// ModelUtil.logException(${exception_var});\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// logWarning will only add the message to the error log\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\n\t\t\t//\t\t\t\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\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}\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.view.segments.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.ide.view.segments.test/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.view.segments.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.ide.view.segments.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c023a4e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Forms Segments IDE Tooling TESTS
+Bundle-SymbolicName: org.eclipse.emfforms.ide.view.segments.test;singleton:=true
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emfforms.ide.view.segments;bundle-version="[1.22.0,1.23.0)"
+Automatic-Module-Name: org.eclipse.emfforms.ide.view.segments.test
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.junit;bundle-version="[4.12.0,5.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.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.ide.view.segments;version="1.21.0"
diff --git a/tests/org.eclipse.emfforms.ide.view.segments.test/build.properties b/tests/org.eclipse.emfforms.ide.view.segments.test/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emfforms.ide.view.segments.test/data/Fan.view b/tests/org.eclipse.emfforms.ide.view.segments.test/data/Fan.view
new file mode 100644
index 0000000..e7df325
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/data/Fan.view
@@ -0,0 +1,38 @@
+<?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.group.model="http://org/eclipse/emf/ecp/view/group/model" xmlns:org.eclipse.emf.ecp.view.horizontal.model="http://org/eclipse/emf/ecp/view/horizontal/model" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmlns:org.eclipse.emf.ecp.view.table.model="http://org/eclipse/emf/ecp/view/table/model/150" xmlns:org.eclipse.emf.ecp.view.vertical.model="http://org/eclipse/emf/ecp/view/vertical/model" xmi:id="_0sfucIBeEembptacsdx8HQ" name="Fan">
+  <rootEClass href="http://org/eclipse/example/bowling#//Fan"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.horizontal.model:HorizontalLayout" xmi:id="_ES5JoIBhEembptacsdx8HQ">
+    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_F5ZNYIBhEembptacsdx8HQ" name="test">
+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_I_gCsIBhEembptacsdx8HQ" name="Control name">
+        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_I_gCsYBhEembptacsdx8HQ">
+          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/example/bowling#//Fan/name"/>
+        </domainModelReference>
+      </children>
+    </children>
+    <children xsi:type="org.eclipse.emf.ecp.view.vertical.model:VerticalLayout" xmi:id="_FKijUIBhEembptacsdx8HQ">
+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_I_c_YIBhEembptacsdx8HQ" name="Control dateOfBirth">
+        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_I_c_YYBhEembptacsdx8HQ">
+          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/example/bowling#//Fan/dateOfBirth"/>
+        </domainModelReference>
+      </children>
+    </children>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.table.model:TableControl" xmi:id="_1gtZoIBeEembptacsdx8HQ">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.table.model:TableDomainModelReference" xmi:id="_7VI2YIBeEembptacsdx8HQ">
+      <columnDomainModelReferences xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_-zkFEIBeEembptacsdx8HQ">
+        <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/example/bowling#//Tournament/type"/>
+      </columnDomainModelReferences>
+      <columnDomainModelReferences xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_-zkFEYBeEembptacsdx8HQ">
+        <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/example/bowling#//Tournament/priceMoney"/>
+      </columnDomainModelReferences>
+      <columnDomainModelReferences xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_-zkFEoBeEembptacsdx8HQ">
+        <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/example/bowling#//Tournament/receivesTrophy"/>
+      </columnDomainModelReferences>
+      <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_7VI2YYBeEembptacsdx8HQ">
+        <domainModelEFeature xsi:type="ecore:EReference" href="http://org/eclipse/example/bowling#//Fan/visitedTournaments"/>
+      </domainModelReference>
+    </domainModelReference>
+    <columnConfigurations xsi:type="org.eclipse.emf.ecp.view.table.model:ReadOnlyColumnConfiguration" xmi:id="_CuUqcIBfEembptacsdx8HQ" columnDomainReferences="_-zkFEoBeEembptacsdx8HQ _-zkFEYBeEembptacsdx8HQ"/>
+    <columnConfigurations xsi:type="org.eclipse.emf.ecp.view.table.model:WidthConfiguration" xmi:id="_E74HIIBfEembptacsdx8HQ" columnDomainReference="_-zkFEIBeEembptacsdx8HQ" minWidth="75"/>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.ide.view.segments.test/pom.xml b/tests/org.eclipse.emfforms.ide.view.segments.test/pom.xml
new file mode 100644
index 0000000..f5e11be
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.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.22.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<artifactId>org.eclipse.emfforms.ide.view.segments.test</artifactId>
+	<version>1.22.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<configuration>
+					<dependency-resolution>
+						<extraRequirements>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.segments.featurepath</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.segments.multi</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.ide.view.segments.test/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl_ITest.java b/tests/org.eclipse.emfforms.ide.view.segments.test/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl_ITest.java
new file mode 100644
index 0000000..c517054
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl_ITest.java
@@ -0,0 +1,203 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.ide.view.segments;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalLayout;
+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.VFeatureDomainModelReferenceSegment;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.model.util.VViewResourceFactoryImpl;
+import org.eclipse.emf.ecp.view.spi.table.model.VReadOnlyColumnConfiguration;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.model.VWidthConfiguration;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrationException;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Integration tests for {@link DmrToSegmentsMigratorImpl}. This tests a "realistic" migration like it would occur in
+ * the tooling.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DmrToSegmentsMigratorImpl_ITest {
+
+	private static final String PLUGIN_ID = "org.eclipse.emfforms.ide.view.segments.test"; //$NON-NLS-1$
+
+	private static Bundle bundle;
+
+	@Rule
+	public TemporaryFolder testFolder = new TemporaryFolder();
+
+	private static BundleContext migratorBundleContext;
+	private static ServiceReference<DmrToSegmentsMigrator> serviceReference;
+	private static DmrToSegmentsMigrator segmentsMigrator;
+
+	@BeforeClass
+	public static void beforeClass() {
+		bundle = Platform.getBundle(PLUGIN_ID);
+		// Need to get service from its bundle because a fragment does not have a bundle context
+		migratorBundleContext = FrameworkUtil.getBundle(DmrToSegmentsMigratorImpl.class).getBundleContext();
+		serviceReference = migratorBundleContext.getServiceReference(DmrToSegmentsMigrator.class);
+		segmentsMigrator = migratorBundleContext.getService(serviceReference);
+	}
+
+	@AfterClass
+	public static void afterClass() {
+		segmentsMigrator = null;
+		migratorBundleContext.ungetService(serviceReference);
+	}
+
+	@Test
+	public void smokeTest() throws IOException, DmrToSegmentsMigrationException {
+		final File newFile = testFolder.newFile();
+		newFile.deleteOnExit();
+		final InputStream openStream = bundle.getEntry("data/Fan.view").openStream(); //$NON-NLS-1$
+		copy(openStream, newFile);
+		final URI resourceURI = URI.createFileURI(newFile.getAbsolutePath());
+
+		final boolean needsMigration = segmentsMigrator.needsMigration(resourceURI);
+		assertTrue("Fan.view should need migration.", needsMigration); //$NON-NLS-1$
+
+		segmentsMigrator.performMigration(resourceURI);
+
+		final Resource resource = loadViewResource(resourceURI);
+		assertEquals(1, resource.getContents().size());
+
+		final VView view = (VView) resource.getContents().get(0);
+		assertEquals(2, view.getChildren().size());
+		final VHorizontalLayout horizontal = (VHorizontalLayout) view.getChildren().get(0);
+		assertEquals(2, horizontal.getChildren().size());
+
+		// Check control dmr in group
+		final VGroup group = (VGroup) horizontal.getChildren().get(0);
+		assertEquals("test", group.getName()); //$NON-NLS-1$
+		assertEquals(1, group.getChildren().size());
+		final VControl groupControl = (VControl) group.getChildren().get(0);
+		final VDomainModelReference groupControlDmr = groupControl.getDomainModelReference();
+		assertNotNull(groupControlDmr);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, groupControlDmr.eClass());
+		assertEquals(1, groupControlDmr.getSegments().size());
+		final VFeatureDomainModelReferenceSegment groupControlDmrSegment = (VFeatureDomainModelReferenceSegment) groupControlDmr
+			.getSegments().get(0);
+		assertEquals("name", groupControlDmrSegment.getDomainModelFeature()); //$NON-NLS-1$
+
+		// Check control dmr in vertical layout
+		final VVerticalLayout vertical = (VVerticalLayout) horizontal.getChildren().get(1);
+		assertEquals(1, vertical.getChildren().size());
+		final VControl verticalControl = (VControl) vertical.getChildren().get(0);
+		final VDomainModelReference verticalControlDmr = verticalControl.getDomainModelReference();
+		assertNotNull(verticalControlDmr);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, verticalControlDmr.eClass());
+		assertEquals(1, verticalControlDmr.getSegments().size());
+		final VFeatureDomainModelReferenceSegment verticalControlDmrSegment = (VFeatureDomainModelReferenceSegment) verticalControlDmr
+			.getSegments().get(0);
+		assertEquals("dateOfBirth", verticalControlDmrSegment.getDomainModelFeature()); //$NON-NLS-1$
+
+		// Check table control
+		final VTableControl table = (VTableControl) view.getChildren().get(1);
+		final VDomainModelReference tableDmr = table.getDomainModelReference();
+		assertNotNull(tableDmr);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, tableDmr.eClass());
+		assertEquals(1, tableDmr.getSegments().size());
+		final VMultiDomainModelReferenceSegment multiSegment = (VMultiDomainModelReferenceSegment) tableDmr
+			.getSegments().get(0);
+		assertEquals("visitedTournaments", multiSegment.getDomainModelFeature()); //$NON-NLS-1$
+		assertEquals(3, multiSegment.getChildDomainModelReferences().size());
+
+		// check child dmrs
+		final VDomainModelReference childDmr1 = multiSegment.getChildDomainModelReferences().get(0);
+		assertEquals(1, childDmr1.getSegments().size());
+		assertEquals("type", //$NON-NLS-1$
+			VFeatureDomainModelReferenceSegment.class.cast(childDmr1.getSegments().get(0)).getDomainModelFeature());
+		final VDomainModelReference childDmr2 = multiSegment.getChildDomainModelReferences().get(1);
+		assertEquals(1, childDmr2.getSegments().size());
+		assertEquals("priceMoney", //$NON-NLS-1$
+			VFeatureDomainModelReferenceSegment.class.cast(childDmr2.getSegments().get(0)).getDomainModelFeature());
+		final VDomainModelReference childDmr3 = multiSegment.getChildDomainModelReferences().get(2);
+		assertEquals(1, childDmr3.getSegments().size());
+		assertEquals("receivesTrophy", //$NON-NLS-1$
+			VFeatureDomainModelReferenceSegment.class.cast(childDmr3.getSegments().get(0)).getDomainModelFeature());
+
+		// check column configurations
+		assertEquals(2, table.getColumnConfigurations().size());
+		final VReadOnlyColumnConfiguration readOnlyConfig = (VReadOnlyColumnConfiguration) table
+			.getColumnConfigurations().get(0);
+		assertEquals(2, readOnlyConfig.getColumnDomainReferences().size());
+		assertSame(childDmr3, readOnlyConfig.getColumnDomainReferences().get(0));
+		assertSame(childDmr2, readOnlyConfig.getColumnDomainReferences().get(1));
+		final VWidthConfiguration widthConfig = (VWidthConfiguration) table.getColumnConfigurations().get(1);
+		assertEquals(75, widthConfig.getMinWidth());
+		assertSame(childDmr1, widthConfig.getColumnDomainReference());
+	}
+
+	private static Resource loadViewResource(URI resourceUri) throws IOException {
+		final ResourceSet resourceSet = new ResourceSetImpl();
+		final Map<String, Object> extensionToFactoryMap = resourceSet
+			.getResourceFactoryRegistry().getExtensionToFactoryMap();
+		extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
+			new VViewResourceFactoryImpl());
+		resourceSet.getPackageRegistry().put(VViewPackage.eNS_URI,
+			VViewPackage.eINSTANCE);
+		final Resource resource = resourceSet.createResource(resourceUri);
+		resource.load(null);
+		return resource;
+	}
+
+	private static void copy(InputStream in, File file) {
+		try (OutputStream out = new FileOutputStream(file)) {
+			final byte[] buf = new byte[1024];
+			int len;
+			while ((len = in.read(buf)) > 0) {
+				out.write(buf, 0, len);
+			}
+			in.close();
+		}
+		// BEGIN SUPRESS CATCH EXCEPTION
+		catch (final Exception e) {// END SUPRESS CATCH EXCEPTION
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.emfforms.ide.view.segments.test/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl_Test.java b/tests/org.eclipse.emfforms.ide.view.segments.test/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl_Test.java
new file mode 100644
index 0000000..e3a4ad3
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.view.segments.test/src/org/eclipse/emfforms/internal/ide/view/segments/DmrToSegmentsMigratorImpl_Test.java
@@ -0,0 +1,341 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.ide.view.segments;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroupFactory;
+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.VDomainModelReferenceSegment;
+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;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.model.util.VViewResourceFactoryImpl;
+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.table.model.VWidthConfiguration;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.segments.EMFFormsSegmentGenerator;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrationException;
+import org.eclipse.emfforms.spi.ide.view.segments.DmrToSegmentsMigrator.PreReplaceProcessor;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentFactory;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link DmrToSegmentsMigratorImpl}. These tests test the migration behavior based on a mocked
+ * {@link EMFFormsSegmentGenerator} and with an already loaded Resource.
+ * <p>
+ * For a "realistic" integration test see {@link DmrToSegmentsMigratorImpl_ITest}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DmrToSegmentsMigratorImpl_Test {
+
+	private DmrToSegmentsMigratorImpl migrator;
+	private ReportService reportService;
+	private EMFFormsSegmentGenerator segmentGenerator;
+	private Resource resource;
+
+	@Before
+	public void setUp() throws Exception {
+		reportService = mock(ReportService.class);
+		segmentGenerator = mock(EMFFormsSegmentGenerator.class);
+		migrator = new DmrToSegmentsMigratorImpl();
+		migrator.setReportService(reportService);
+		migrator.setEMFFormsSegmentGenerator(segmentGenerator);
+		resource = createViewResource();
+	}
+
+	@Test
+	public void performMigration() throws DmrToSegmentsMigrationException {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl control1 = VViewFactory.eINSTANCE.createControl();
+		final VDomainModelReference featureDmr1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		control1.setDomainModelReference(featureDmr1);
+		view.getChildren().add(control1);
+
+		final VControl control2 = VViewFactory.eINSTANCE.createControl();
+		final VDomainModelReference featureDmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		control2.setDomainModelReference(featureDmr2);
+		final VGroup group = VGroupFactory.eINSTANCE.createGroup();
+		group.getChildren().add(control2);
+		view.getChildren().add(group);
+
+		// mock segment generation
+		final VFeatureDomainModelReferenceSegment segment11 = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		final VFeatureDomainModelReferenceSegment segment12 = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(segmentGenerator.generateSegments(featureDmr1)).thenReturn(Arrays.asList(segment11, segment12));
+		final VFeatureDomainModelReferenceSegment segment2 = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(segmentGenerator.generateSegments(featureDmr2)).thenReturn(Arrays.asList(segment2));
+
+		resource.getContents().add(view);
+
+		migrator.performMigration(resource);
+
+		assertEquals(1, resource.getContents().size());
+		assertSame(view, resource.getContents().get(0));
+		assertEquals(2, view.getChildren().size());
+		assertSame(control1, view.getChildren().get(0));
+
+		// check migrated dmr of control1
+		final VDomainModelReference migratedDmr1 = control1.getDomainModelReference();
+		assertNotNull(migratedDmr1);
+		assertNotSame(featureDmr1, migratedDmr1);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, migratedDmr1.eClass());
+		assertEquals(2, migratedDmr1.getSegments().size());
+		assertSame(segment11, migratedDmr1.getSegments().get(0));
+		assertSame(segment12, migratedDmr1.getSegments().get(1));
+
+		// check layout and migrated dmr of control2
+		assertSame(group, view.getChildren().get(1));
+		assertEquals(1, group.getChildren().size());
+		assertSame(control2, group.getChildren().get(0));
+		final VDomainModelReference migratedDmr2 = control2.getDomainModelReference();
+		assertNotNull(migratedDmr2);
+		assertNotSame(featureDmr2, migratedDmr2);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, migratedDmr2.eClass());
+		assertEquals(1, migratedDmr2.getSegments().size());
+		assertSame(segment2, migratedDmr2.getSegments().get(0));
+
+		verify(segmentGenerator, times(2)).generateSegments(any());
+		verify(reportService, never()).report(any());
+	}
+
+	@Test
+	public void performMigration_tableWithCrossReference() throws DmrToSegmentsMigrationException {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VTableControl table = VTableFactory.eINSTANCE.createTableControl();
+		view.getChildren().add(table);
+		final VTableDomainModelReference tableDmr = VTableFactory.eINSTANCE.createTableDomainModelReference();
+		table.setDomainModelReference(tableDmr);
+
+		final VFeaturePathDomainModelReference columnDmr1 = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		final VFeaturePathDomainModelReference columnDmr2 = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		tableDmr.getColumnDomainModelReferences().add(columnDmr1);
+		tableDmr.getColumnDomainModelReferences().add(columnDmr2);
+
+		final VWidthConfiguration widthConfig = VTableFactory.eINSTANCE.createWidthConfiguration();
+		widthConfig.setMinWidth(100);
+		widthConfig.setColumnDomainReference(columnDmr2);
+		table.getColumnConfigurations().add(widthConfig);
+
+		final VMultiDomainModelReferenceSegment multiSegment = VMultisegmentFactory.eINSTANCE
+			.createMultiDomainModelReferenceSegment();
+		final VDomainModelReference childDmr1 = VViewFactory.eINSTANCE.createDomainModelReference();
+		final VDomainModelReference childDmr2 = VViewFactory.eINSTANCE.createDomainModelReference();
+		multiSegment.getChildDomainModelReferences().add(childDmr1);
+		multiSegment.getChildDomainModelReferences().add(childDmr2);
+
+		when(segmentGenerator.generateSegments(tableDmr)).thenReturn(Collections.singletonList(multiSegment));
+
+		resource.getContents().add(view);
+		migrator.performMigration(resource);
+
+		assertSame(resource, table.eResource());
+		final VDomainModelReference newTableDmr = table.getDomainModelReference();
+		assertNotNull(newTableDmr);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, newTableDmr.eClass());
+		assertEquals(1, newTableDmr.getSegments().size());
+		assertSame(multiSegment, newTableDmr.getSegments().get(0));
+		assertSame(widthConfig, table.getColumnConfigurations().get(0));
+		assertSame(childDmr2, widthConfig.getColumnDomainReference());
+		assertEquals(100, widthConfig.getMinWidth());
+	}
+
+	/**
+	 * Tests migration for a view with a legacy and a segment dmr.
+	 *
+	 * @throws DmrToSegmentsMigrationException
+	 */
+	@Test
+	public void performMigration_mixed() throws DmrToSegmentsMigrationException {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl legacyControl = VViewFactory.eINSTANCE.createControl();
+		final VControl segmentControl = VViewFactory.eINSTANCE.createControl();
+
+		final VFeaturePathDomainModelReference legacyDmr = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		legacyControl.setDomainModelReference(legacyDmr);
+		final VDomainModelReference segmentDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		segmentControl.setDomainModelReference(segmentDmr);
+
+		view.getChildren().add(legacyControl);
+		view.getChildren().add(segmentControl);
+
+		final VFeatureDomainModelReferenceSegment featureSegment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(segmentGenerator.generateSegments(legacyDmr)).thenReturn(Collections.singletonList(featureSegment));
+
+		resource.getContents().add(view);
+		migrator.performMigration(resource);
+
+		assertSame(resource, legacyControl.eResource());
+		final VDomainModelReference dmr = legacyControl.getDomainModelReference();
+		assertNotNull(dmr);
+		assertNotSame(legacyDmr, dmr);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, dmr.eClass());
+		assertEquals(1, dmr.getSegments().size());
+
+		assertSame(featureSegment, dmr.getSegments().get(0));
+
+		assertSame(resource, segmentControl.eResource());
+		assertSame(segmentDmr, segmentControl.getDomainModelReference());
+		verify(reportService, never()).report(any());
+		verify(segmentGenerator, times(1)).generateSegments(any());
+	}
+
+	/**
+	 * Tests that the migration applies given {@link PreReplaceProcessor}s and does so in the correct order.
+	 * 
+	 * @throws DmrToSegmentsMigrationException
+	 */
+	@Test
+	public void performMigration_preReplaceProcessor() throws DmrToSegmentsMigrationException {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl legacyControl = VViewFactory.eINSTANCE.createControl();
+
+		final VFeaturePathDomainModelReference legacyDmr = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		legacyControl.setDomainModelReference(legacyDmr);
+
+		view.getChildren().add(legacyControl);
+		resource.getContents().add(view);
+
+		final VFeatureDomainModelReferenceSegment featureSegment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		when(segmentGenerator.generateSegments(legacyDmr)).thenReturn(Collections.singletonList(featureSegment));
+
+		// mock pre replace processors
+		final VDomainModelReferenceSegment addedByProcessor1 = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		final VDomainModelReferenceSegment addedByProcessor2 = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		final PreReplaceProcessor processor1 = (legacy, segment) -> {
+			segment.getSegments().add(addedByProcessor1);
+		};
+		final PreReplaceProcessor processor2 = (legacy, segment) -> {
+			segment.getSegments().add(addedByProcessor2);
+		};
+
+		migrator.performMigration(resource, processor1, processor2);
+
+		assertSame(resource, legacyControl.eResource());
+		final VDomainModelReference dmr = legacyControl.getDomainModelReference();
+		assertNotNull(dmr);
+		assertNotSame(legacyDmr, dmr);
+		assertSame(VViewPackage.Literals.DOMAIN_MODEL_REFERENCE, dmr.eClass());
+		assertEquals(3, dmr.getSegments().size());
+
+		assertSame(featureSegment, dmr.getSegments().get(0));
+		assertSame(addedByProcessor1, dmr.getSegments().get(1));
+		assertSame(addedByProcessor2, dmr.getSegments().get(2));
+
+		verify(reportService, never()).report(any());
+		verify(segmentGenerator, times(1)).generateSegments(any());
+	}
+
+	@Test
+	public void performMigration_emptyResource() throws DmrToSegmentsMigrationException {
+		migrator.performMigration(resource);
+
+		assertTrue(resource.getContents().isEmpty());
+	}
+
+	@Test
+	public void needsMigration_mixed() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl legacyControl = VViewFactory.eINSTANCE.createControl();
+		final VControl segmentControl = VViewFactory.eINSTANCE.createControl();
+
+		final VFeaturePathDomainModelReference legacyDmr = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		legacyControl.setDomainModelReference(legacyDmr);
+		final VDomainModelReference segmentDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		segmentControl.setDomainModelReference(segmentDmr);
+
+		view.getChildren().add(legacyControl);
+		view.getChildren().add(segmentControl);
+
+		resource.getContents().add(view);
+		assertTrue(migrator.needsMigration(resource));
+	}
+
+	@Test
+	public void needsMigration_legacyOnly() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl legacyControl = VViewFactory.eINSTANCE.createControl();
+
+		final VFeaturePathDomainModelReference legacyDmr = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		legacyControl.setDomainModelReference(legacyDmr);
+
+		view.getChildren().add(legacyControl);
+
+		resource.getContents().add(view);
+		assertTrue(migrator.needsMigration(resource));
+	}
+
+	@Test
+	public void needsMigration_segmentDmrsOnly() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl segmentControl = VViewFactory.eINSTANCE.createControl();
+
+		final VDomainModelReference segmentDmr = VViewFactory.eINSTANCE.createDomainModelReference();
+		segmentControl.setDomainModelReference(segmentDmr);
+
+		view.getChildren().add(segmentControl);
+
+		resource.getContents().add(view);
+		assertFalse(migrator.needsMigration(resource));
+	}
+
+	private Resource createViewResource() {
+		final ResourceSet rs = new ResourceSetImpl();
+		rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION,
+			new VViewResourceFactoryImpl());
+		final Resource resource = rs.createResource(URI.createURI("VIRTUAL-RESOURCE")); //$NON-NLS-1$
+		return resource;
+	}
+}
diff --git a/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 114a217..16b322c 100644
--- a/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Localization Tests
 Bundle-SymbolicName: org.eclipse.emfforms.localization.tests
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.localization;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.localization.tests;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.localization;version="1.21.0"
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.localization.tests;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.localization;version="1.22.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)"
diff --git a/tests/org.eclipse.emfforms.localization.tests/pom.xml b/tests/org.eclipse.emfforms.localization.tests/pom.xml
index 4a71213..583bbc2 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.rulerepository.tooling.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.rulerepository.tooling.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.rulerepository.tooling.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.rulerepository.tooling.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ffe48b4..f9d7a58 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Rule Repository Tooling Test
 Bundle-SymbolicName: org.eclipse.emfforms.rulerepository.tooling.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.rulerepository.tooling;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.rulerepository.tooling.test;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.rulerepository.tooling;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.rulerepository.tooling.test;version="1.22.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)"
diff --git a/tests/org.eclipse.emfforms.rulerepository.tooling.test/pom.xml b/tests/org.eclipse.emfforms.rulerepository.tooling.test/pom.xml
index bce00f3..b613f6c 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<groupId>org.eclipse.emf.ecp</groupId>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.sdk.integration.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.sdk.integration.test/META-INF/MANIFEST.MF
index 4f1d142..b101202 100644
--- a/tests/org.eclipse.emfforms.sdk.integration.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.sdk.integration.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SDK Integration Test
 Bundle-SymbolicName: org.eclipse.emfforms.sdk.integration.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: EMFForms Cell Editor Tests
 Automatic-Module-Name: org.eclipse.emfforms.sdk.integration.test
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -10,4 +10,4 @@
 Bundle-ActivationPolicy: lazy
 Import-Package: org.apache.felix.scr;version="[1.3.0,2.0.0)",
  org.osgi.framework;version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emfforms.internal.sdk.integration.test;version="1.21.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.sdk.integration.test;version="1.22.0";x-internal:=true
diff --git a/tests/org.eclipse.emfforms.sdk.integration.test/pom.xml b/tests/org.eclipse.emfforms.sdk.integration.test/pom.xml
index dd1ec55..093214f 100644
--- a/tests/org.eclipse.emfforms.sdk.integration.test/pom.xml
+++ b/tests/org.eclipse.emfforms.sdk.integration.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.21.0-SNAPSHOT</version>
+		<version>1.22.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emfforms.sdk.integration.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
-	<version>1.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<groupId>org.eclipse.emf.ecp</groupId>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.common.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.common.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.common.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.common.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 c935eda..ba4e85f 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,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Common Test Helper
 Bundle-SymbolicName: org.eclipse.emfforms.swt.common.test
-Bundle-Version: 1.21.0.qualifier
-Export-Package: org.eclipse.emfforms.swt.common.test;version="1.21.0"
+Bundle-Version: 1.22.0.qualifier
+Export-Package: org.eclipse.emfforms.swt.common.test;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.11.0,3.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
diff --git a/tests/org.eclipse.emfforms.swt.common.test/pom.xml b/tests/org.eclipse.emfforms.swt.common.test/pom.xml
index 39a87d6..b156bd4 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 9539d5e..bdf2dfd 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,16 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.spi.view.control.multiattribute;version="1.21.0"
+Fragment-Host: org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.spi.view.control.multiattribute;version="1.22.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.hamcrest.library;bundle-version="1.3.0"
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.hamcrest.library;bundle-version="1.3.0",
+ org.eclipse.emfforms.localization;bundle-version="[1.22.0,1.23.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/pom.xml b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/pom.xml
index 833f111..849dd30 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.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
index 3a71a12..3ea2393 100644
--- 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
@@ -16,6 +16,8 @@
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.util.Arrays;
 
@@ -37,6 +39,8 @@
 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.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Shell;
@@ -112,6 +116,10 @@
 	@Before
 	public void initMocks() {
 		MockitoAnnotations.initMocks(this);
+		when(viewModelContext.getService(EMFFormsLocalizationService.class))
+			.thenReturn(mock(EMFFormsLocalizationService.class));
+		when(viewModelContext.getService(ReportService.class))
+			.thenReturn(mock(ReportService.class));
 	}
 
 	@Before
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 0803b36..f1594f3 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
@@ -77,6 +77,7 @@
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 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;
@@ -618,6 +619,8 @@
 			Matchers.any(EObject.class)))
 				.thenReturn(list);
 		when(viewContext.getDomainModel()).thenReturn(object);
+		when(viewContext.getService(EMFFormsLocalizationService.class))
+			.thenReturn(mock(EMFFormsLocalizationService.class));
 
 		/* setup rendering */
 		final MultiAttributeSWTRenderer renderer = createRenderer();
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 b28ab21..963e339 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.control.text.autocomplete;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.swt.control.text.autocomplete.tests;version="1.21.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.swt.control.text.autocomplete;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.swt.control.text.autocomplete.tests;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.22.0,1.23.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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 18d73f4..60ba8c0 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.controlgrid.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.controlgrid.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.controlgrid.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.controlgrid.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 ae9c457..f05815a 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.controlgrid;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.21.0"
+Fragment-Host: org.eclipse.emfforms.swt.controlgrid;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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 10c8ded..c4a8bcc 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e5718ed..09aa3ed 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,19 +2,19 @@
 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.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.internal.swt.core.di.extension.tests;version="1.21.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.swt.core.di.tests;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+Fragment-Host: org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.core.di.extension.tests;version="1.22.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.swt.core.di.tests;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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)"
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 3a9a22c..d1a4f3a 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/All Plugin Tests for swt.core.di.launch b/tests/org.eclipse.emfforms.swt.core.di.tests/All Plugin Tests for swt.core.di.launch
index b64214b..2c67b4d 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.tests/All Plugin Tests for swt.core.di.launch
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/All Plugin Tests for swt.core.di.launch
@@ -1,43 +1,44 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">

-<booleanAttribute key="append.args" value="true"/>

-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>

-<booleanAttribute key="askclear" value="false"/>

-<booleanAttribute key="automaticAdd" value="false"/>

-<booleanAttribute key="automaticValidate" value="false"/>

-<stringAttribute key="bootstrap" value=""/>

-<stringAttribute key="checked" value="[NONE]"/>

-<booleanAttribute key="clearConfig" value="true"/>

-<booleanAttribute key="clearws" value="true"/>

-<booleanAttribute key="clearwslog" value="false"/>

-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>

-<booleanAttribute key="default" value="false"/>

-<booleanAttribute key="includeOptional" value="true"/>

-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>

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

-<listEntry value="/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/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"/>

-<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.swt.core.di.tests.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.swt.core.di.tests"/>

-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>

-<stringAttribute key="pde.version" value="3.3"/>

-<stringAttribute key="product" value="org.eclipse.platform.ide"/>

-<booleanAttribute key="run_in_ui_thread" value="false"/>

-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.xml@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@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.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@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.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@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.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@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.junit@default:default,org.mockito.mockito-all@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.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@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@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.di.tests@default:false,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@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="false"/>

-</launchConfiguration>

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/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.internal.swt.core.di.tests.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.swt.core.di.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<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.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.xmlgraphics@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@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.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.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.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,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.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@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.0.v200806040011@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.edit.swt@default:default,org.eclipse.emf.ecp.edit@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@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.label.model@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@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.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@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.segments@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.tests@default:false,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.annotation.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
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 04e3026..38940c1 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,29 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core DI Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di.tests
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.di.tests;version="1.21.0";x-friends:="org.eclipse.emfforms.swt.core.di.extension.tests",
- org.eclipse.emfforms.spi.swt.core.di;version="1.21.0"
-Require-Bundle: org.eclipse.emfforms.swt.core.di;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.21.0,1.22.0)",
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.tests;version="1.22.0";x-friends:="org.eclipse.emfforms.swt.core.di.extension.tests",
+ org.eclipse.emfforms.spi.swt.core.di;version="1.22.0"
+Require-Bundle: org.eclipse.emfforms.swt.core.di;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.e4.core.di;version="0.0.0",
+ org.eclipse.e4.core.di.annotations;version="0.0.0",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.common.di.annotations;version="[1.22.0,1.23.0)",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0",
  org.osgi.framework;version="1.8.0"
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 f4ff3c2..f98a35a 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -37,6 +37,16 @@
 								<id>org.eclipse.equinox.ds</id>
 								<versionRange>0.0.0</versionRange>
 							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.legacy</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.structuralchange</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
 						</extraRequirements>
 					</dependency-resolution>
 				</configuration>
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllPluginTests.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllPluginTests.java
index 662ae72..30aeb84 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllPluginTests.java
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllPluginTests.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 2.0
@@ -10,10 +10,13 @@
  *
  * Contributors:
  * Lucas - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.internal.swt.core.di.tests;
 
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsContextViewServiceFactory_PTest;
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory_PTest;
+import org.eclipse.emfforms.spi.swt.core.di.RendererSupplier_PTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
@@ -25,7 +28,11 @@
  *
  */
 @RunWith(Suite.class)
-@SuiteClasses({ EMFFormsDIRendererFactory_PTest.class })
+@SuiteClasses({
+	EMFFormsDIRendererFactory_PTest.class,
+	RendererSupplier_PTest.class,
+	EMFFormsContextViewServiceFactory_PTest.class,
+})
 public class AllPluginTests {
 
 }
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsContextViewServiceFactory_PTest.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsContextViewServiceFactory_PTest.java
new file mode 100644
index 0000000..3583192
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsContextViewServiceFactory_PTest.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.sameInstance;
+import static org.junit.Assert.assertThat;
+
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+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.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for the {@code EMFFormsContextViewServiceFactory} class.
+ */
+@SuppressWarnings("nls")
+public class EMFFormsContextViewServiceFactory_PTest {
+
+	private final VElement viewModel = VViewFactory.eINSTANCE.createView();
+
+	private final EObject domainModel = EcoreFactory.eINSTANCE.createEObject();
+
+	private ViewModelContext viewModelContext;
+
+	/**
+	 * Initializes me.
+	 */
+	public EMFFormsContextViewServiceFactory_PTest() {
+		super();
+	}
+
+	@Test
+	public void test_default() {
+		final IEclipseContext e4Context = viewModelContext.getService(IEclipseContext.class);
+		assertThat("Should have got an Eclipse context", e4Context, notNullValue());
+	}
+
+	@Test
+	public void test_success() {
+		final IEclipseContext expected = EclipseContextFactory.create();
+
+		// Bootstrap the Eclipse context
+		viewModelContext.putContextValue(IEclipseContext.class.getName(), expected);
+
+		final IEclipseContext e4Context = viewModelContext.getService(IEclipseContext.class);
+		assertThat("Should not have got the exact Eclipse context", e4Context, not(sameInstance(expected)));
+		assertThat("Should have got a child of the Eclipse context", e4Context.getParent(), sameInstance(expected));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createContext() {
+		viewModelContext = ViewModelContextFactory.INSTANCE.createViewModelContext(viewModel, domainModel);
+	}
+
+	@After
+	public void destroyContext() {
+		viewModelContext.dispose();
+		viewModelContext = null;
+	}
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/RendererSupplier_PTest.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/RendererSupplier_PTest.java
new file mode 100644
index 0000000..6d76569
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/RendererSupplier_PTest.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.function.Supplier;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.InjectionException;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList;
+import org.eclipse.emf.ecp.view.model.common.di.annotations.Renderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emfforms.internal.swt.core.di.RendererSupplier;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * Test cases for the {@link RendererSupplier}.
+ */
+@SuppressWarnings({ "restriction", "nls" })
+public class RendererSupplier_PTest {
+
+	private IEclipseContext e4Context;
+
+	/**
+	 * Initializes me.
+	 */
+	public RendererSupplier_PTest() {
+		super();
+	}
+
+	@Test
+	public void injection() {
+		final ViewModelContext viewContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		when(viewContext.getService(ReportService.class)).thenReturn(reportService);
+		final VControl control = mock(VControl.class);
+		when(control.eAdapters()).thenReturn(new EAdapterList<>(control));
+
+		final AbstractSWTRenderer<VControl> renderer = new MyRenderer(control, viewContext);
+
+		final InjectMe injectMe = new InjectMe();
+
+		try {
+			ContextInjectionFactory.invoke(injectMe, Execute.class, e4Context);
+			fail("Should have failed to inject");
+		} catch (final InjectionException e) {
+			// Success
+		}
+
+		// Now put the prerequisites into the context
+		e4Context.set(VElement.class, control);
+		// Note that this one requires the context function that casts to ViewModelContext type
+		e4Context.set(EMFFormsViewContext.class, viewContext);
+
+		try {
+			final String returnResult = (String) ContextInjectionFactory.invoke(injectMe, Execute.class, e4Context);
+			assertThat(returnResult, is("success"));
+			assertThat(injectMe.get(), is(renderer));
+		} catch (final InjectionException e) {
+			e.printStackTrace();
+			fail("Failed to inject: " + e.getMessage());
+		}
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createContext() {
+		final Bundle self = FrameworkUtil.getBundle(RendererSupplier_PTest.class);
+		e4Context = EclipseContextFactory.createServiceContext(self.getBundleContext());
+	}
+
+	@After
+	public void destroyContext() {
+		e4Context.dispose();
+	}
+
+	//
+	// Nested types
+	//
+
+	static class InjectMe implements Supplier<Object> {
+		private Object injected;
+
+		@Execute
+		public String call(@Renderer MyRenderer renderer) {
+			injected = renderer;
+			return "success";
+		}
+
+		@Override
+		public Object get() {
+			return injected;
+		}
+	}
+
+	static class MyRenderer extends AbstractSWTRenderer<VControl> {
+
+		MyRenderer(VControl control, ViewModelContext viewContext) {
+			super(control, viewContext, viewContext.getService(ReportService.class));
+		}
+
+		@Override
+		protected Control renderControl(SWTGridCell cell, Composite parent)
+			throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+			return null;
+		}
+
+		@Override
+		public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
+			return null;
+		}
+
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/AllIntegrationTests emfforms.swt.core.launch b/tests/org.eclipse.emfforms.swt.core.tests/AllIntegrationTests emfforms.swt.core.launch
index d5c9390..ccf6394 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/AllIntegrationTests emfforms.swt.core.launch
+++ b/tests/org.eclipse.emfforms.swt.core.tests/AllIntegrationTests emfforms.swt.core.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.swt.core.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.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:default,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: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.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:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:default,org.eclipse.equinox.weaving.hook@default:default,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:default,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:default,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.test@default:default,org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@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.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.test@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.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt.test@default:default,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context.tests@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference.tests@default:default,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt.tests@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.test@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.test@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.test@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit.test@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.test@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@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.test@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.swt.test@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.test@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service.test@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.test@default:default,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation.test@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.test@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.test@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.tests@default:default,org.eclipse.emfforms.common.validation.tests@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar.tests@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath.tests@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index.tests@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping.tests@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.tests@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index.tests@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping.tests@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.tests@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy.tests@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.test@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.tests@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization.tests@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.tests@default:default,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension.tests@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.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.model.localization.tests@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*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@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@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.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.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.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,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.context.tests@default:false,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.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.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.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.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*1.22.0.qualifier@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.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.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.localization.tests@default:false,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.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.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.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.core.tests/META-INF/MANIFEST.MF
index 0552751..b7902da 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,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.tests
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.swt.core;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.core;version="1.21.0",
- org.eclipse.emfforms.swt.core.tests;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.core;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core;version="1.22.0",
+ org.eclipse.emfforms.swt.core.tests;version="1.22.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.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)"
+Import-Package: org.eclipse.e4.core.contexts;version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.label.model;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.spi.vertical.model;version="1.22.0",
+ org.eclipse.emf.ecp.view.test.common.spi;version="1.22.0",
+ 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 0b2167f..f987fd0 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -37,6 +37,51 @@
 								<id>org.eclipse.equinox.ds</id>
 								<versionRange>0.0.0</versionRange>
 							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.label.ui.swt</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.vertical.ui.swt</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.swt.core.di</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.legacy</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.core.swt</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.ui.view.swt.di</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.swt.layout</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.locale.default</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.databinding.featurepath</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
 						</extraRequirements>
 					</dependency-resolution>
 				</configuration>
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/ContainerRevealProvider_ITest.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/ContainerRevealProvider_ITest.java
new file mode 100644
index 0000000..48f4aa4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/ContainerRevealProvider_ITest.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabelFactory;
+import org.eclipse.emf.ecp.view.spi.model.VContainedContainer;
+import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emf.ecp.view.spi.model.VContainer;
+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.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+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.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.hamcrest.CustomTypeSafeMatcher;
+import org.hamcrest.Matcher;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests covering the {@link ContainerRevealProvider} class.
+ */
+@SuppressWarnings("nls")
+@RunWith(EMFMockingRunner.class)
+public class ContainerRevealProvider_ITest {
+
+	@ViewModel
+	private final VView view = VViewFactory.eINSTANCE.createView();
+
+	@EMock
+	@DomainModel
+	private EObject rootObject;
+
+	@EMock
+	private EObject obj1;
+
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<ViewModelContext> fixture = EMFFormsRevealServiceFixture.create(
+		ViewModelContext.class, this);
+
+	private Shell shell;
+	private ScrolledComposite scrollPane;
+
+	/**
+	 * Initializes me.
+	 */
+	public ContainerRevealProvider_ITest() {
+		super();
+	}
+
+	@Test
+	public void revealWithScroll() {
+		final VContainer top = (VContainer) view.getChildren().get(0);
+		final VContainer lastContainer = (VContainer) top.getChildren().get(top.getChildren().size() - 1);
+		final VContainedElement label = lastContainer.getChildren().get(0);
+
+		final Runnable reveal = mock(Runnable.class);
+
+		final EMFFormsRevealProvider compositeRevealer = new EMFFormsRevealProvider() {
+			@Bid
+			public Double bid(VElement view, EObject model) {
+				return view == label && model == obj1 ? Double.MAX_VALUE : null;
+			}
+
+			@Create
+			public RevealStep create(VElement view, EObject model) {
+				return view == label && model == obj1
+					? RevealStep.reveal(view, model, reveal)
+					: RevealStep.fail();
+			}
+		};
+		fixture.addRevealProvider(compositeRevealer);
+
+		render();
+
+		SWTTestUtil.waitForUIThread();
+
+		fixture.reveal(obj1);
+
+		SWTTestUtil.waitForUIThread();
+
+		verify(reveal).run();
+
+		SWTTestUtil.waitForUIThread();
+
+		// Check that the scroll pane was scrolled to reveal the label
+		assertThat("Composite not scrolled", scrollPane.getVerticalBar().getSelection(), greaterThan(5));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createViewModel() {
+		final VContainedContainer container = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(container);
+
+		// Create enough groups with labels in them that a scroll will certainly
+		// be required to reveal the last of them
+		for (int i = 0; i < 50; i++) {
+			final VContainedContainer vertical = VVerticalFactory.eINSTANCE.createVerticalLayout();
+			container.getChildren().add(vertical);
+			final VContainedElement label = VLabelFactory.eINSTANCE.createLabel();
+			vertical.getChildren().add(label);
+			label.setName("Label " + (i + 1));
+			label.setLabel(label.getName());
+		}
+	}
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+		shell.setLayout(new GridLayout());
+		scrollPane = new ScrolledComposite(shell, SWT.V_SCROLL);
+		scrollPane.setAlwaysShowScrollBars(true); // Useful for testing feedback
+		scrollPane.setExpandHorizontal(true);
+		scrollPane.setExpandVertical(true);
+		GridDataFactory.fillDefaults().grab(true, true).applyTo(scrollPane);
+		final Composite content = new Composite(scrollPane, SWT.NONE);
+		content.setLayout(new GridLayout());
+		scrollPane.setContent(content);
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	void render() {
+		SWTViewTestHelper.render(fixture.getViewContext(), (Composite) scrollPane.getContent());
+
+		// Ensure that we can scroll the client area
+		scrollPane.setMinSize(scrollPane.getContent().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+		shell.layout();
+		shell.setSize(500, 300);
+		shell.open();
+	}
+
+	static <N extends Number & Comparable<N>> Matcher<N> greaterThan(N lowerBound) {
+		return new CustomTypeSafeMatcher<N>("> " + lowerBound) {
+			@Override
+			protected boolean matchesSafely(N item) {
+				return item.compareTo(lowerBound) > 0;
+			}
+		};
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/ControlRevealProvider_ITest.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/ControlRevealProvider_ITest.java
new file mode 100644
index 0000000..ffff677
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/ControlRevealProvider_ITest.java
@@ -0,0 +1,267 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import static java.util.Collections.singleton;
+import static org.hamcrest.CoreMatchers.is;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.ModelReferenceHelper;
+import org.eclipse.emf.ecp.view.spi.model.VContainedContainer;
+import org.eclipse.emf.ecp.view.spi.model.VContainer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsRevealServiceFixture;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.DomainModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFFormsViewContextFixture.ViewModel;
+import org.eclipse.emf.ecp.view.test.common.spi.EMFMockingRunner;
+import org.eclipse.emf.ecp.view.test.common.spi.EMock;
+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.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.controlmapper.EMFFormsSettingToControlMapper;
+import org.eclipse.emfforms.spi.core.services.reveal.EMFFormsRevealProvider;
+import org.eclipse.emfforms.spi.core.services.reveal.Reveal;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealHelper;
+import org.eclipse.emfforms.spi.core.services.reveal.RevealStep;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+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.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/**
+ * Tests covering the {@link ControlRevealProvider} class.
+ */
+@SuppressWarnings("nls")
+@RunWith(EMFMockingRunner.class)
+public class ControlRevealProvider_ITest {
+
+	@ViewModel
+	private final VView view = VViewFactory.eINSTANCE.createView();
+	private final VControl control = VViewFactory.eINSTANCE.createControl();
+
+	@EMock
+	@DomainModel
+	private EObject rootObject;
+
+	@EMock
+	private EObject obj1;
+
+	@EMock
+	private EAttribute feature;
+
+	private AbstractSWTRenderer<VElement> controlRenderer;
+
+	@Mock
+	private EMFFormsRendererService<VElement> rendererService;
+
+	@Mock
+	private Runnable scrollToReveal;
+
+	@Rule
+	public final TestRule realm = DefaultRealm.rule();
+
+	@Rule
+	public final EMFFormsRevealServiceFixture<ViewModelContext> fixture = EMFFormsRevealServiceFixture.create(
+		ViewModelContext.class, this);
+
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public ControlRevealProvider_ITest() {
+		super();
+	}
+
+	@Test
+	public void revealWithFocus() {
+		final VContainer container = (VContainer) view.getChildren().get(0);
+
+		final Runnable reveal = mock(Runnable.class);
+
+		final EMFFormsRevealProvider compositeRevealer = new EMFFormsRevealProvider() {
+			@Bid
+			public Double bid(VElement view, EObject model) {
+				return view == container && model == obj1 ? Double.MAX_VALUE : null;
+			}
+
+			@Create
+			public RevealStep create(VElement view, EObject model, RevealHelper helper) {
+				return view == container && model == obj1
+					? helper.drillDown(this)
+					: RevealStep.fail();
+			}
+
+			@Reveal
+			RevealStep drillDown(VContainer element, EObject model) {
+				return RevealStep.reveal(element, model, reveal);
+			}
+
+		};
+		fixture.addRevealProvider(compositeRevealer);
+
+		render();
+
+		SWTTestUtil.waitForUIThread();
+
+		fixture.reveal(obj1, feature);
+
+		SWTTestUtil.waitForUIThread();
+
+		verify(reveal).run();
+
+		SWTTestUtil.waitForUIThread();
+
+		// Check that the specific setting renderer was asked to reveal
+		verify(scrollToReveal, atLeastOnce()).run();
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createDomainModel() {
+		when(feature.getEType()).thenReturn(EcorePackage.Literals.ESTRING);
+		when(feature.getEAttributeType()).thenReturn(EcorePackage.Literals.ESTRING);
+		when(obj1.eGet(feature)).thenReturn("Hello, world");
+		when(obj1.eGet(argThat(is(feature)), anyBoolean())).thenReturn("Hello, world");
+	}
+
+	@Before
+	public void createViewModel() {
+		final VContainedContainer container = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(container);
+		control.setDomainModelReference(ModelReferenceHelper.createDomainModelReference(feature));
+		container.getChildren().add(control);
+	}
+
+	@Before
+	public void mockServices() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		// Ensure that the context-provider service gets our Eclipse context
+		when(fixture.getViewContext().getContextValue(IEclipseContext.class.getName()))
+			.then(invocation -> fixture.getService(IEclipseContext.class));
+
+		// Spy on a renderer for verification of interactions
+		when(rendererService.isApplicable(argThat(is(control)), any())).thenReturn(Double.MAX_VALUE);
+		when(rendererService.getRendererInstance(argThat(is(control)), any())).then(invocation -> {
+			final ViewModelContext viewContext = (ViewModelContext) invocation.getArguments()[1];
+			controlRenderer = new DummyRenderer(control, viewContext, viewContext.getService(ReportService.class));
+			return controlRenderer;
+		});
+		((EMFFormsRendererFactoryImpl) fixture.getService(EMFFormsRendererFactory.class))
+			.addEMFFormsRendererService(rendererService);
+
+		// And also important is the control mapper
+		final EMFFormsSettingToControlMapper mapper = mock(EMFFormsSettingToControlMapper.class);
+		when(mapper.hasMapping(any(), any(VControl.class))).thenReturn(true);
+		when(mapper.getControlsFor(any(UniqueSetting.class))).thenReturn(singleton(control));
+		fixture.putService(EMFFormsSettingToControlMapper.class, mapper);
+	}
+
+	@Before
+	public void createShell() {
+		shell = new Shell();
+		shell.setLayout(new GridLayout());
+	}
+
+	@After
+	public void destroyShell() {
+		shell.dispose();
+		shell = null;
+	}
+
+	// Don't mess with other tests
+	@After
+	public void removeMockServices() {
+		((EMFFormsRendererFactoryImpl) fixture.getService(EMFFormsRendererFactory.class))
+			.removeEMFFormsRendererService(rendererService);
+	}
+
+	void render() {
+		SWTViewTestHelper.render(fixture.getViewContext(), shell);
+		shell.layout();
+		shell.setSize(500, 300);
+		shell.open();
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * The abstract renderer API has too many final methods that cannot be mocked, and
+	 * they cause NPEs in the rendering process when using mocks.
+	 */
+	private final class DummyRenderer extends AbstractSWTRenderer<VElement> {
+
+		DummyRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService) {
+			super(vElement, viewContext, reportService);
+		}
+
+		@Override
+		public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
+			return GridDescriptionFactory.INSTANCE.createSimpleGrid(1, 1, this);
+		}
+
+		@Override
+		protected Control renderControl(SWTGridCell cell, Composite parent)
+			throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+			return new Text(parent, SWT.BORDER);
+		}
+
+		@Override
+		public void scrollToReveal() {
+			scrollToReveal.run();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_ITest.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_ITest.java
index a174d1c..8581cf2 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_ITest.java
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_ITest.java
@@ -13,6 +13,7 @@
  ******************************************************************************/
 package org.eclipse.emfforms.internal.swt.core;
 
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.eMock;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 
@@ -111,7 +112,7 @@
 		final ServiceRegistration<EMFFormsRendererService> registerService = bundleContext.registerService(
 			EMFFormsRendererService.class, rendererService, null);
 		registerService.unregister();
-		rendererFactory.getRendererInstance(mock(VElement.class), mock(ViewModelContext.class));
+		rendererFactory.getRendererInstance(eMock(VElement.class), mock(ViewModelContext.class));
 	}
 
 	/**
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_Test.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_Test.java
index 8cd661b..22f196e 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_Test.java
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_Test.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 2.0
@@ -10,9 +10,11 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.internal.swt.core;
 
+import static org.eclipse.emf.ecp.view.test.common.spi.EMFMocking.eMock;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -107,11 +109,12 @@
 	@SuppressWarnings("unchecked")
 	@Test
 	public void testAddRendererService() throws EMFFormsNoRendererException {
-		final VElement vElement = mock(VElement.class);
+		final VElement vElement = eMock(VElement.class);
 		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
 		final EMFFormsRendererService<VElement> rendererService = mock(EMFFormsRendererService.class);
-		when(rendererService.getRendererInstance(vElement, viewModelContext)).thenReturn(
-			new MockedAbstractSWTRenderer(vElement, viewModelContext, mock(ReportService.class)));
+		final AbstractSWTRenderer<VElement> mockRenderer = new MockedAbstractSWTRenderer(vElement, viewModelContext,
+			mock(ReportService.class));
+		when(rendererService.getRendererInstance(vElement, viewModelContext)).thenReturn(mockRenderer);
 		rendererFactory.addEMFFormsRendererService(rendererService);
 		rendererFactory.getRendererInstance(vElement, viewModelContext);
 		Mockito.verify(rendererService, Mockito.times(1)).isApplicable(vElement, viewModelContext);
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllIntegrationTests.java
index 47670fa..3485023 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllIntegrationTests.java
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllIntegrationTests.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 2.0
@@ -10,9 +10,12 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 548592
  ******************************************************************************/
 package org.eclipse.emfforms.swt.core.tests;
 
+import org.eclipse.emfforms.internal.swt.core.ContainerRevealProvider_ITest;
+import org.eclipse.emfforms.internal.swt.core.ControlRevealProvider_ITest;
 import org.eclipse.emfforms.internal.swt.core.EMFFormsRendererFactory_ITest;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer_PTest;
 import org.eclipse.emfforms.spi.swt.core.SWTDataElementIdHelper_ITest;
@@ -30,7 +33,9 @@
 @SuiteClasses({
 	AbstractSWTRenderer_PTest.class,
 	EMFFormsRendererFactory_ITest.class,
-	SWTDataElementIdHelper_ITest.class
+	SWTDataElementIdHelper_ITest.class,
+	ContainerRevealProvider_ITest.class,
+	ControlRevealProvider_ITest.class,
 })
 public class AllIntegrationTests {
 
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/.checkstyle b/tests/org.eclipse.emfforms.swt.reference.table.test/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/.classpath b/tests/org.eclipse.emfforms.swt.reference.table.test/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/.project b/tests/org.eclipse.emfforms.swt.reference.table.test/.project
new file mode 100644
index 0000000..7b2cd18
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.reference.table.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>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</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/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..efea61d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,418 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.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.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.swt.reference.table.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..6ed4937
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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">/**\n * @return the ${bare_field_name}\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">/**\n * @param ${param} the ${bare_field_name} to set\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">/**\n * ${tags}\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">/*******************************************************************************\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n * \n * Contributors\:\n * ${user} - initial API and implementation\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">/**\n * @author ${user}\n *\n * ${tags}\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">/**\n * ${tags}\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">/**\n * {@inheritDoc}\n * ${see_to_overridden}\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">/**\n * ${tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\n\t\t\t// Log AND handle Exceptions if possible \n            //\n            // You can just uncomment one of the lines below to log an exception\:\n\t\t\t// logException will show the logged excpetion to the user\n\t\t\t// ModelUtil.logException(${exception_var});\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// logWarning will only add the message to the error log\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\n\t\t\t//\t\t\t\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\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}\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.swt.reference.table.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..cfb400b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+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_FIELD=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_DEFAULT_METHOD=Ignore
+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_ANNOTATION=Warning
+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
+changed_execution_env=Error
+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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
+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.swt.reference.table.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.swt.reference.table.test/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.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.swt.reference.table.test/AllTests for emfforms.swt.reference.table.launch b/tests/org.eclipse.emfforms.swt.reference.table.test/AllTests for emfforms.swt.reference.table.launch
new file mode 100644
index 0000000..fe46211
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/AllTests for emfforms.swt.reference.table.launch
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="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.swt.reference.table.test/src/org/eclipse/emfforms/swt/reference/table/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.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.swt.reference.table.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.emfforms.swt.reference.table.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.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.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.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.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.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.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator@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.test@default:false,org.eclipse.emf.ecp.common.ui.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.di@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.validation.test@default:false,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.categorization.model.edit.test@default:false,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.test@default:false,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context.tests@default:false,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.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.label.ui.swt@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator.test@default:false,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.test@default:false,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit.test@default:false,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.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.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.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.treemasterdetail.ui.swt.test@default:false,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation.test@default:false,org.eclipse.emf.ecp.view.treemasterdetail.validation@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.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.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.panel.test@default:false,org.eclipse.emfforms.core.services.mappingprovider.table.panel@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.featurepath.test@default:false,org.eclipse.emfforms.core.services.segments.featurepath@default:default,org.eclipse.emfforms.core.services.segments.index.test@default:false,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping.test@default:false,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments.multi.test@default:false,org.eclipse.emfforms.core.services.segments.multi@default:default,org.eclipse.emfforms.core.services.segments.test@default:false,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.test@default:false,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.setup.base@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.reference.table.test@default:false,org.eclipse.emfforms.swt.reference.table@default:default,org.eclipse.emfforms.swt.table.test@default:false,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.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"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.reference.table.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..cc483ae
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Table Reference Selection Composite Tests
+Bundle-SymbolicName: org.eclipse.emfforms.swt.reference.table.test
+Bundle-Version: 1.22.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emfforms.swt.reference.table;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.swt.internal.reference.table;version="1.22.0",
+ org.eclipse.emfforms.swt.reference.table.test;version="1.22.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.22.0,1.23.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.22.0,1.23.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.swt;bundle-version="[3.107.0,4.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.swt.reference.table.test
+Import-Package: org.eclipse.emf.ecp.spi.common.ui;version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;version="[1.22.0,1.23.0)"
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/build.properties b/tests/org.eclipse.emfforms.swt.reference.table.test/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/pom.xml b/tests/org.eclipse.emfforms.swt.reference.table.test/pom.xml
new file mode 100644
index 0000000..30cdac7
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/pom.xml
@@ -0,0 +1,98 @@
+<?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.22.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<artifactId>org.eclipse.emfforms.swt.reference.table.test</artifactId>
+	<version>1.22.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+		          	<useUIHarness>true</useUIHarness>
+		          	<useUIThread>true</useUIThread>
+		        	<failIfNoTests>false</failIfNoTests>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<configuration>
+					<dependency-resolution>
+						<extraRequirements>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.locale.default</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.equinox.event</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.databinding.featurepath</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.segments.featurepath</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.segments.multi</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.core.services.emf</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.template.service</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.localization</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.core.swt</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.swt.layout</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.vertical.ui.swt</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDmrSegmentConverter_PTest.java b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDmrSegmentConverter_PTest.java
new file mode 100644
index 0000000..db1011b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDmrSegmentConverter_PTest.java
@@ -0,0 +1,177 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import static org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter.NOT_APPLICABLE;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+
+import org.eclipse.core.databinding.observable.IObservable;
+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.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.ETypedElement;
+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.spi.model.VFeatureDomainModelReferenceSegment;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterListResultEMF;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterValueResultEMF;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test cases for {@link DelegatingDmrSegmentConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DelegatingDmrSegmentConverter_PTest {
+
+	private DefaultRealm realm;
+
+	private EPackage textPackage;
+	private EClass text;
+	private EAttribute words;
+
+	private EObject doc1;
+	private EObject doc2;
+
+	private DelegatingDmrSegmentConverter fixture;
+
+	private IObservable observable;
+
+	private VFeatureDomainModelReferenceSegment ecoreNameSegment;
+	private VFeatureDomainModelReferenceSegment wordsSegment;
+
+	@Test
+	public void isApplicable() {
+		assertThat("Should be applicable", fixture.isApplicable(wordsSegment), not(NOT_APPLICABLE));
+
+		final VFeatureDomainModelReferenceSegment other = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		other.setDomainModelFeature(words.getName());
+		assertThat("Should not be applicable", fixture.isApplicable(other), is(NOT_APPLICABLE));
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test
+	public void convertToListProperty() throws DatabindingFailedException {
+		final SegmentConverterListResultEMF result = fixture.convertToListProperty(wordsSegment, text, null);
+
+		final IObservableList<String> list = result.getListProperty().observe(doc2);
+		observable = list;
+		assertThat(list.getElementType(), is(words));
+		assertThat(list, hasItem("world"));
+
+		list.set(0, "Goodbye");
+
+		assertThat(doc1.eGet(words), is(Arrays.asList("Goodbye", "world")));
+	}
+
+	@Test
+	public void convertToValueProperty() throws DatabindingFailedException {
+		createFixture(ecoreNameSegment, EcorePackage.Literals.ENAMED_ELEMENT__NAME, text);
+
+		// The editing domain is not used
+		final SegmentConverterValueResultEMF result = fixture.convertToValueProperty(wordsSegment, text, null);
+		@SuppressWarnings("unchecked")
+		final IValueProperty<ENamedElement, String> property = result.getValueProperty();
+		// If this doesn't work, Ecore package is frozen, so it will throw on attempt to change the
+		// name of the EObject EClass
+		final IObservableValue<String> value = property.observe(EcorePackage.Literals.EOBJECT);
+		observable = value;
+
+		assertThat(value.getValueType(), is(EcorePackage.Literals.ENAMED_ELEMENT__NAME));
+		assertThat(value.getValue(), is("Text"));
+
+		value.setValue("Document");
+
+		assertThat(text.getName(), is("Document"));
+
+		assertThat(EcorePackage.Literals.EOBJECT.getName(), not("Document"));
+	}
+
+	@Test
+	public void getSetting() throws DatabindingFailedException {
+		final EStructuralFeature.Setting setting = fixture.getSetting(wordsSegment, doc2);
+		assertThat("Wrong feature", setting.getEStructuralFeature(), is(words));
+		assertThat("Wrong owner", setting.getEObject(), is(doc1));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createRealm() {
+		realm = new DefaultRealm();
+	}
+
+	@Before
+	public void createFixture() {
+		textPackage = EcoreFactory.eINSTANCE.createEPackage();
+		textPackage.setName("text");
+		textPackage.setNsURI("http://text");
+		text = EcoreFactory.eINSTANCE.createEClass();
+		text.setName("Text");
+		textPackage.getEClassifiers().add(text);
+		words = EcoreFactory.eINSTANCE.createEAttribute();
+		words.setName("words");
+		words.setEType(EcorePackage.Literals.ESTRING);
+		words.setLowerBound(1);
+		words.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
+		text.getEStructuralFeatures().add(words);
+
+		doc1 = EcoreUtil.create(text);
+		doc1.eSet(words, Arrays.asList("Hello", "world"));
+		doc2 = EcoreUtil.create(text);
+		doc2.eSet(words, Arrays.asList("This", "is", "a", "test"));
+
+		wordsSegment = VViewFactory.eINSTANCE.createFeatureDomainModelReferenceSegment();
+		wordsSegment.setDomainModelFeature(words.getName());
+
+		createFixture(wordsSegment, words, doc1);
+
+		ecoreNameSegment = VViewFactory.eINSTANCE.createFeatureDomainModelReferenceSegment();
+		ecoreNameSegment.setDomainModelFeature(EcorePackage.Literals.ENAMED_ELEMENT__NAME.getName());
+	}
+
+	@After
+	public void destroyRealm() {
+		if (observable != null) {
+			observable.dispose();
+		}
+		realm.dispose();
+	}
+
+	void createFixture(VFeatureDomainModelReferenceSegment segment, EStructuralFeature feature, EObject delegate) {
+		fixture = new DelegatingDmrSegmentConverter(segment, feature, __ -> delegate);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDomainModelReferenceConverter_PTest.java b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDomainModelReferenceConverter_PTest.java
new file mode 100644
index 0000000..3a6a6b3
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/DelegatingDomainModelReferenceConverter_PTest.java
@@ -0,0 +1,205 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import static org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter.NOT_APPLICABLE;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.ETypedElement;
+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.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test cases for the {@link DelegatingDomainModelReferenceConverter} class.
+ */
+public class DelegatingDomainModelReferenceConverter_PTest {
+
+	private DefaultRealm realm;
+
+	private EPackage textPackage;
+	private EClass text;
+	private EAttribute segments;
+
+	private EObject doc1;
+	private EObject doc2;
+
+	private VFeaturePathDomainModelReference segmentsDMR;
+	private DelegatingDomainModelReferenceConverter fixture;
+
+	private VFeaturePathDomainModelReference ecoreNameDMR;
+
+	private IObservable observable;
+
+	/**
+	 * Initializes me.
+	 */
+	public DelegatingDomainModelReferenceConverter_PTest() {
+		super();
+	}
+
+	@Test
+	public void isApplicable() {
+		assertThat("Should be applicable", fixture.isApplicable(segmentsDMR), not(NOT_APPLICABLE));
+
+		final VDomainModelReference other = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		segmentsDMR.setDomainModelEFeature(EcorePackage.Literals.ECLASS__ESUPER_TYPES);
+		assertThat("Should not be applicable", fixture.isApplicable(other), is(NOT_APPLICABLE));
+	}
+
+	@Test
+	public void convertToListProperty() throws DatabindingFailedException {
+		@SuppressWarnings("unchecked")
+		final IListProperty<EObject, String> property = fixture.convertToListProperty(segmentsDMR, doc2);
+
+		final IObservableList<String> list = property.observe(doc2);
+		observable = list;
+		assertThat(list.getElementType(), is(segments));
+		assertThat(list, hasItem("world"));
+
+		list.set(0, "Goodbye");
+
+		assertThat(doc1.eGet(segments), is(Arrays.asList("Goodbye", "world")));
+	}
+
+	@Test
+	public void convertToValueProperty_EObject() throws DatabindingFailedException {
+		createFixture(ecoreNameDMR, text);
+
+		@SuppressWarnings("unchecked")
+		final IValueProperty<ENamedElement, String> property = fixture.convertToValueProperty(ecoreNameDMR,
+			EcorePackage.Literals.EOBJECT, null);
+
+		// If this doesn't work, Ecore package is frozen, so it will throw on attempt to change the
+		// name of the EObject EClass
+		final IObservableValue<String> value = property.observe(EcorePackage.Literals.EOBJECT);
+		observable = value;
+
+		assertThat(value.getValueType(), is(EcorePackage.Literals.ENAMED_ELEMENT__NAME));
+		assertThat(value.getValue(), is("Text"));
+
+		value.setValue("Document");
+
+		assertThat(text.getName(), is("Document"));
+
+		// Just in case ;-)
+		assertThat(EcorePackage.Literals.EOBJECT.getName(), not("Document"));
+	}
+
+	@Test
+	public void convertToValueProperty_EClass_EditingDomain() throws DatabindingFailedException {
+		createFixture(ecoreNameDMR, text);
+
+		@SuppressWarnings("unchecked")
+		final IValueProperty<ENamedElement, String> property = fixture.convertToValueProperty(ecoreNameDMR,
+			EcorePackage.Literals.ECLASS, null); // The editing domain is not used
+
+		// If this doesn't work, Ecore package is frozen, so it will throw on attempt to change the
+		// name of the EObject EClass
+		final IObservableValue<String> value = property.observe(EcorePackage.Literals.EOBJECT);
+		observable = value;
+
+		assertThat(value.getValueType(), is(EcorePackage.Literals.ENAMED_ELEMENT__NAME));
+		assertThat(value.getValue(), is("Text"));
+
+		value.setValue("Document");
+
+		assertThat(text.getName(), is("Document"));
+
+		// Just in case ;-)
+		assertThat(EcorePackage.Literals.EOBJECT.getName(), not("Document"));
+	}
+
+	@Test
+	public void getSetting() throws DatabindingFailedException {
+		final EStructuralFeature.Setting setting = fixture.getSetting(segmentsDMR, doc2);
+		assertThat("Wrong feature", setting.getEStructuralFeature(), is(segments));
+		assertThat("Wrong owner", setting.getEObject(), is(doc1));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createRealm() {
+		realm = new DefaultRealm();
+	}
+
+	@Before
+	public void createFixture() {
+		textPackage = EcoreFactory.eINSTANCE.createEPackage();
+		textPackage.setName("text");
+		textPackage.setNsURI("http://text");
+		text = EcoreFactory.eINSTANCE.createEClass();
+		text.setName("Text");
+		textPackage.getEClassifiers().add(text);
+		segments = EcoreFactory.eINSTANCE.createEAttribute();
+		segments.setName("segments");
+		segments.setEType(EcorePackage.Literals.ESTRING);
+		segments.setLowerBound(1);
+		segments.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
+		text.getEStructuralFeatures().add(segments);
+
+		doc1 = EcoreUtil.create(text);
+		doc1.eSet(segments, Arrays.asList("Hello", "world"));
+		doc2 = EcoreUtil.create(text);
+		doc2.eSet(segments, Arrays.asList("This", "is", "a", "test"));
+
+		segmentsDMR = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		segmentsDMR.setDomainModelEFeature(segments);
+
+		createFixture(segmentsDMR, doc1);
+
+		ecoreNameDMR = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		ecoreNameDMR.setDomainModelEFeature(EcorePackage.Literals.ENAMED_ELEMENT__NAME);
+	}
+
+	@After
+	public void destroyRealm() {
+		if (observable != null) {
+			observable.dispose();
+		}
+		realm.dispose();
+	}
+
+	void createFixture(VFeaturePathDomainModelReference dmr, EObject delegate) {
+		fixture = new DelegatingDomainModelReferenceConverter(dmr, __ -> delegate);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/SelectionTableCompositeStrategyProvider_PTest.java b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/SelectionTableCompositeStrategyProvider_PTest.java
new file mode 100644
index 0000000..58c687f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/SelectionTableCompositeStrategyProvider_PTest.java
@@ -0,0 +1,283 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.internal.reference.table;
+
+import static org.eclipse.emfforms.swt.internal.reference.table.SelectionTableCompositeStrategyProvider.VIEW_FILTER_KEY;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assume.assumeThat;
+
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+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.EParameter;
+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.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.ui.view.swt.reference.SelectionCompositeStrategy;
+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.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.provider.EMFFormsViewService;
+import org.eclipse.emf.ecp.view.spi.provider.IFilteredViewProvider;
+import org.eclipse.emf.ecp.view.spi.provider.IViewProvider;
+import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+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;
+
+/**
+ * Black-box tests for the {@link SelectionTableCompositeStrategyProvider} class.
+ */
+@RunWith(Parameterized.class)
+public class SelectionTableCompositeStrategyProvider_PTest {
+
+	private static final EReference REFERENCE = EcorePackage.Literals.ETYPED_ELEMENT__ETYPE;
+
+	/** Parameterized name of the "outer" view. */
+	private final String mainView;
+	/** Parameterized name of the view containing the table control for the table composite. */
+	private final String tableCompositeView;
+
+	private DefaultRealm realm;
+
+	private ViewModelContext context;
+	private EMFFormsViewService viewService;
+	private IViewProvider viewProvider;
+
+	private VView eParameterView;
+	private VView eTypedElementETypeView;
+
+	private EParameter domainModel;
+
+	private SelectionTableCompositeStrategyProvider fixture;
+	private Shell shell;
+
+	/**
+	 * Initializes me.
+	 */
+	public SelectionTableCompositeStrategyProvider_PTest(String name, String mainView, String tableComposite) {
+		super();
+		this.mainView = mainView;
+		tableCompositeView = tableComposite;
+	}
+
+	@Parameters(name = "{0}")
+	public static Object[] parameters() {
+		return new Object[][] {
+			{ "legacy", "legacy_EParameter.view", "legacy_ETypedElement_eType.view" },
+			{ "segments", "segments_EParameter.view", "segments_ETypedElement_eType.view" }
+		};
+	}
+
+	@Test
+	public void provides() {
+		assertThat("Expected to provide", fixture.provides(domainModel, REFERENCE), notNullValue());
+	}
+
+	@Test
+	public void provides_not() {
+		final EPackage oneOffPackage = EcoreFactory.eINSTANCE.createEPackage();
+		oneOffPackage.setName("oneoff");
+		oneOffPackage.setNsURI("http://oneoff");
+		final EClass oneOffClass = EcoreFactory.eINSTANCE.createEClass();
+		oneOffClass.setName("OneOff");
+		oneOffPackage.getEClassifiers().add(oneOffClass);
+		final EReference other = EcoreFactory.eINSTANCE.createEReference();
+		other.setName("other");
+		other.setEType(oneOffClass);
+		oneOffClass.getEStructuralFeatures().add(other);
+		final EObject oneOff = EcoreUtil.create(oneOffClass);
+
+		assertThat("Expected not to provide", fixture.provides(oneOff, other), nullValue());
+	}
+
+	@Test
+	public void provides_not_byRequiredFilter() {
+		viewService.removeProvider(viewProvider);
+		viewProvider = createLegacyViewProvider();
+		viewService.addProvider(viewProvider);
+
+		assertThat("Expected to provide", fixture.provides(domainModel, REFERENCE), nullValue());
+	}
+
+	@Test
+	public void create() {
+		assumeThat("Expected to provide", fixture.provides(domainModel, REFERENCE), notNullValue());
+
+		final Set<EObject> extent = new HashSet<>();
+		extent.addAll(EcorePackage.eINSTANCE.getEClassifiers());
+		extent.addAll(XMLTypePackage.eINSTANCE.getEClassifiers());
+
+		final SelectionCompositeStrategy strategy = fixture.create(domainModel, REFERENCE);
+		final SelectionComposite<? extends StructuredViewer> composite = strategy.getSelectionViewer(domainModel,
+			REFERENCE, extent);
+
+		shell = new Shell();
+		shell.setSize(500, 300);
+		shell.setLayout(new FillLayout(SWT.VERTICAL));
+		composite.createUI(shell);
+		shell.open();
+
+		final SWTBot bot = new SWTBot(shell);
+		final SWTBotTable table = bot.table();
+		assertThat("Wrong number of columns", table.columnCount(), is(4));
+
+		// Note that the EPackage column name is provided explicitly by the view model.
+		// Otherwise, it would also be "Name" (it's the EPackage name)
+		assertThat(table.columns(), is(Arrays.asList("Selection", "Name", "Instance Type Name", "EPackage")));
+
+		// Exercise the filter
+		bot.text().setText("DocumentRoot");
+
+		// There should be only one match
+		assertThat("Filter failed", table.rowCount(), is(1));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createRealm() {
+		realm = new DefaultRealm();
+	}
+
+	@Before
+	public void createContext() {
+		loadViewModels();
+		domainModel = EcoreFactory.eINSTANCE.createEParameter();
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(eParameterView, domainModel);
+
+		viewService = context.getService(EMFFormsViewService.class);
+		viewProvider = createFilteredViewProvider();
+		viewService.addProvider(viewProvider);
+
+		fixture = new SelectionTableCompositeStrategyProvider();
+		fixture.setDatabinding(context.getService(EMFFormsDatabindingEMF.class));
+	}
+
+	@After
+	public void destroyContext() {
+		viewService.removeProvider(viewProvider);
+		viewService = null;
+		viewProvider = null;
+
+		context.dispose();
+		context = null;
+	}
+
+	@After
+	public void closeShell() {
+		if (shell != null) {
+			shell.dispose();
+		}
+	}
+
+	@After
+	public void destroyRealm() {
+		realm.dispose();
+	}
+
+	public void loadViewModels() {
+		final ResourceSet rset = new ResourceSetImpl();
+		Resource res = rset.getResource(getURI(mainView), true);
+		eParameterView = (VView) EcoreUtil.getObjectByType(res.getContents(), VViewPackage.Literals.VIEW);
+		res = rset.getResource(getURI(tableCompositeView), true);
+		eTypedElementETypeView = (VView) EcoreUtil.getObjectByType(res.getContents(), VViewPackage.Literals.VIEW);
+	}
+
+	URI getURI(String fileName) {
+		final URL url = SelectionTableCompositeStrategyProvider_PTest.class.getResource(fileName);
+		return URI.createURI(url.toExternalForm());
+	}
+
+	private IViewProvider createFilteredViewProvider() {
+		// Just delegate to an old-style provider
+		final IViewProvider delegate = createLegacyViewProvider();
+
+		return new IFilteredViewProvider() {
+
+			@Override
+			public double canProvideViewModel(EObject eObject, VViewModelProperties properties,
+				Collection<String> requiredKeys) {
+
+				return delegate.canProvideViewModel(eObject, properties);
+			}
+
+			@Override
+			public VView provideViewModel(EObject eObject, VViewModelProperties properties,
+				Collection<String> requiredKeys) {
+
+				return delegate.provideViewModel(eObject, properties);
+			}
+
+		};
+	}
+
+	/**
+	 * Create a legacy provider that requires adaptation to the new filtering API
+	 * and so is not even consulted if there are required filter keys.
+	 *
+	 * @return the legacy view provider
+	 */
+	private IViewProvider createLegacyViewProvider() {
+		return new IViewProvider() {
+
+			@Override
+			public double canProvideViewModel(EObject eObject, VViewModelProperties properties) {
+				return eObject == domainModel
+					&& REFERENCE.getName().equals(properties.get(VIEW_FILTER_KEY))
+						? Double.POSITIVE_INFINITY
+						: NOT_APPLICABLE;
+			}
+
+			@Override
+			public VView provideViewModel(EObject eObject, VViewModelProperties properties) {
+				final VView result = EcoreUtil.copy(eTypedElementETypeView);
+				result.setLoadingProperties(EcoreUtil.copy(properties));
+				return result;
+			}
+
+		};
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/legacy_EParameter.view b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/legacy_EParameter.view
new file mode 100644
index 0000000..68810ca
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/legacy_EParameter.view
@@ -0,0 +1,39 @@
+<?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="_MBvG0ILhEemgFOUufSg2Sw" name="EParameter">
+  <rootEClass href="http://www.eclipse.org/emf/2002/Ecore#//EParameter"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F8oLhEemgFOUufSg2Sw" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6F84LhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6GAILhEemgFOUufSg2Sw" name="Control eType">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6GAYLhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EReference" href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F-ILhEemgFOUufSg2Sw" name="Control lowerBound">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6F-YLhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/lowerBound"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F-oLhEemgFOUufSg2Sw" name="Control upperBound">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6F-4LhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/upperBound"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F9ILhEemgFOUufSg2Sw" name="Control ordered">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6F9YLhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/ordered"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F9oLhEemgFOUufSg2Sw" name="Control unique">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6F94LhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/unique"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F8ILhEemgFOUufSg2Sw" name="Control eAnnotations">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_MB6F8YLhEemgFOUufSg2Sw">
+      <domainModelEFeature xsi:type="ecore:EReference" href="http://www.eclipse.org/emf/2002/Ecore#//EModelElement/eAnnotations"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/legacy_ETypedElement_eType.view b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/legacy_ETypedElement_eType.view
new file mode 100644
index 0000000..cfa8083
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/legacy_ETypedElement_eType.view
@@ -0,0 +1,22 @@
+<?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.emf.ecp.view.table.model="http://org/eclipse/emf/ecp/view/table/model/150" xmi:id="_f4-XAILhEemgFOUufSg2Sw" name="ETypedElement">
+  <rootEClass href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.table.model:TableControl" xmi:id="_jP52kILhEemgFOUufSg2Sw" name="eType">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.table.model:TableDomainModelReference" xmi:id="_xbucEILhEemgFOUufSg2Sw">
+      <columnDomainModelReferences xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_2JOtAILhEemgFOUufSg2Sw">
+        <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name"/>
+      </columnDomainModelReferences>
+      <columnDomainModelReferences xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_2JOtBILhEemgFOUufSg2Sw">
+        <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//EClassifier/instanceTypeName"/>
+      </columnDomainModelReferences>
+      <columnDomainModelReferences xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_-7nIoILhEemgFOUufSg2Sw">
+        <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name"/>
+        <domainModelEReferencePath href="http://www.eclipse.org/emf/2002/Ecore#//EClassifier/ePackage"/>
+      </columnDomainModelReferences>
+      <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_xbucEYLhEemgFOUufSg2Sw">
+        <domainModelEFeature xsi:type="ecore:EReference" href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+      </domainModelReference>
+    </domainModelReference>
+    <columnConfigurations xsi:type="org.eclipse.emf.ecp.view.table.model:EnablementConfiguration" xmi:id="_MkD7UILiEemgFOUufSg2Sw" name="EPackage" columnDomainReference="_-7nIoILhEemgFOUufSg2Sw"/>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/segments_EParameter.view b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/segments_EParameter.view
new file mode 100644
index 0000000..856f150
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/segments_EParameter.view
@@ -0,0 +1,39 @@
+<?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:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_MBvG0ILhEemgFOUufSg2Sw" name="EParameter">
+  <rootEClass href="http://www.eclipse.org/emf/2002/Ecore#//EParameter"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F8oLhEemgFOUufSg2Sw" name="Control name">
+    <domainModelReference xmi:id="_dzQNsJKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQNsZKlEemopf5v_LanBA" domainModelFeature="name"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6GAILhEemgFOUufSg2Sw" name="Control eType">
+    <domainModelReference xmi:id="_dzQ0wJKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQ0wZKlEemopf5v_LanBA" domainModelFeature="eType"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F-ILhEemgFOUufSg2Sw" name="Control lowerBound">
+    <domainModelReference xmi:id="_dzQ0wpKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQ0w5KlEemopf5v_LanBA" domainModelFeature="lowerBound"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F-oLhEemgFOUufSg2Sw" name="Control upperBound">
+    <domainModelReference xmi:id="_dzQ0xJKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQ0xZKlEemopf5v_LanBA" domainModelFeature="upperBound"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F9ILhEemgFOUufSg2Sw" name="Control ordered">
+    <domainModelReference xmi:id="_dzQ0xpKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQ0x5KlEemopf5v_LanBA" domainModelFeature="ordered"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F9oLhEemgFOUufSg2Sw" name="Control unique">
+    <domainModelReference xmi:id="_dzQ0yJKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQ0yZKlEemopf5v_LanBA" domainModelFeature="unique"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_MB6F8ILhEemgFOUufSg2Sw" name="Control eAnnotations">
+    <domainModelReference xmi:id="_dzQ0ypKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_dzQ0y5KlEemopf5v_LanBA" domainModelFeature="eAnnotations"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/segments_ETypedElement_eType.view b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/segments_ETypedElement_eType.view
new file mode 100644
index 0000000..1404eaa
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/internal/reference/table/segments_ETypedElement_eType.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:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmlns:org.eclipse.emf.ecp.view.table.model="http://org/eclipse/emf/ecp/view/table/model/150" xmlns:org.eclipse.emfforms.view.multisegment.model="http://org/eclipse/emfforms/view/multisegment/model/1190" xmi:id="_f4-XAILhEemgFOUufSg2Sw" name="ETypedElement">
+  <rootEClass href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.table.model:TableControl" xmi:id="_jP52kILhEemgFOUufSg2Sw" name="eType">
+    <domainModelReference xmi:id="_efC8sJKlEemopf5v_LanBA">
+      <segments xsi:type="org.eclipse.emfforms.view.multisegment.model:MultiDomainModelReferenceSegment" xmi:id="_efC8sZKlEemopf5v_LanBA" domainModelFeature="eType">
+        <childDomainModelReferences xmi:id="_efC8spKlEemopf5v_LanBA">
+          <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_efC8s5KlEemopf5v_LanBA" domainModelFeature="name"/>
+        </childDomainModelReferences>
+        <childDomainModelReferences xmi:id="_efC8tJKlEemopf5v_LanBA">
+          <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_efC8tZKlEemopf5v_LanBA" domainModelFeature="instanceTypeName"/>
+        </childDomainModelReferences>
+        <childDomainModelReferences xmi:id="_efC8tpKlEemopf5v_LanBA">
+          <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_efC8t5KlEemopf5v_LanBA" domainModelFeature="ePackage"/>
+          <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_efC8uJKlEemopf5v_LanBA" domainModelFeature="name"/>
+        </childDomainModelReferences>
+      </segments>
+    </domainModelReference>
+    <columnConfigurations xsi:type="org.eclipse.emf.ecp.view.table.model:EnablementConfiguration" xmi:id="_MkD7UILiEemgFOUufSg2Sw" name="EPackage" columnDomainReference="_efC8tpKlEemopf5v_LanBA"/>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/reference/table/test/AllTests.java b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/reference/table/test/AllTests.java
new file mode 100644
index 0000000..7fc2090
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.reference.table.test/src/org/eclipse/emfforms/swt/reference/table/test/AllTests.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.emfforms.swt.reference.table.test;
+
+import org.eclipse.emfforms.swt.internal.reference.table.DelegatingDmrSegmentConverter_PTest;
+import org.eclipse.emfforms.swt.internal.reference.table.DelegatingDomainModelReferenceConverter_PTest;
+import org.eclipse.emfforms.swt.internal.reference.table.SelectionTableCompositeStrategyProvider_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * The suite of all tests.
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+	DelegatingDomainModelReferenceConverter_PTest.class,
+	SelectionTableCompositeStrategyProvider_PTest.class,
+	DelegatingDmrSegmentConverter_PTest.class
+})
+public class AllTests {
+	// Nothing more to specify
+}
diff --git a/tests/org.eclipse.emfforms.swt.table.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.table.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.table.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.table.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 7bfcfdb..83a1728 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,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.table.test
-Bundle-Version: 1.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.swt.table;bundle-version="[1.21.0,1.22.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.table.action;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.table.action;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.swt.table.test;version="1.21.0";x-internal:=true
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.table;bundle-version="[1.22.0,1.23.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.table.action;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.table;version="1.22.0",
+ org.eclipse.emfforms.spi.swt.table.action;version="1.22.0",
+ org.eclipse.emfforms.swt.table.test;version="1.22.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.21.0,1.22.0)"
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.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 c7e9469..d416ec2 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 bec546a..1a47eb0 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,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: TreeMasterDetail Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.treemasterdetail.test
-Bundle-Version: 1.21.0.qualifier
+Bundle-Version: 1.22.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.swt.treemasterdetail.test;version="1.21.0"
+Export-Package: org.eclipse.emfforms.swt.treemasterdetail.test;version="1.22.0"
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
- org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
  org.apache.log4j;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.21.0,1.22.0)",
- org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.22.0,1.23.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.label.ui.swt;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.service;bundle-version="[1.22.0,1.23.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/TreeMasterDetail.launch b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/TreeMasterDetail.launch
index 313a4fe..45be3ea 100644
--- a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/TreeMasterDetail.launch
+++ b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/TreeMasterDetail.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.emfforms.swt.treemasterdetail.test.TreeMasterDetail_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.swt.treemasterdetail.test"/>
@@ -32,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.sdk.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.batik.util.gui*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.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.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@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.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.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.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.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.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.edit@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.custom.model@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.label.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.edit.test@default:false,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.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.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.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.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.tests@default:false,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.tests@default:false,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@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.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.treemasterdetail.test@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.model.localization.tests@default:false,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*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@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.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.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.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@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.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.util@default:default,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.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.text@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.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.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.edit@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.custom.model@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.test@default:false,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit.test@default:false,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.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.model.test@default:false,org.eclipse.emf.ecp.view.table.model@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.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.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.tests@default:false,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@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@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.treemasterdetail.test@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.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.treemasterdetail.test/pom.xml b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/pom.xml
index e3ca37a..7ebb672 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -39,38 +39,6 @@
 				<groupId>org.eclipse.tycho</groupId>
 				<artifactId>target-platform-configuration</artifactId>
 				<configuration>
-				
-					<filters>
-						<filter>
-							<type>eclipse-plugin</type>
-							<id>org.eclipse.core.databinding.beans</id>
-							<restrictTo>
-								<versionRange>[1.3.0,1.4.0)</versionRange>
-							</restrictTo>
-						</filter>
-						<filter>
-							<type>eclipse-plugin</type>
-							<id>org.eclipse.core.databinding.observable</id>
-							<restrictTo>
-								<versionRange>[1.5.0,1.6.0)</versionRange>
-							</restrictTo>
-						</filter>
-						<filter>
-							<type>eclipse-plugin</type>
-							<id>org.eclipse.core.databinding.property</id>
-							<restrictTo>
-								<versionRange>[1.5.0,1.6.0)</versionRange>
-							</restrictTo>
-						</filter>
-						<filter>
-							<type>eclipse-plugin</type>
-							<id>org.eclipse.core.databinding</id>
-							<restrictTo>
-								<versionRange>[1.5.0,1.6.0)</versionRange>
-							</restrictTo>
-						</filter>
-					</filters>
-					
 					<dependency-resolution>
 						<extraRequirements>
 							<requirement>
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 babdc62..e232790 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
@@ -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 2.0
@@ -10,13 +10,21 @@
  *
  * Contributors:
  * Edgar Mueller - initial API and implementation
+ * Christian W. Damus - bugs 527686, 548592, 549565
  ******************************************************************************/
 package org.eclipse.emfforms.swt.treemasterdetail.test;
 
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withText;
+import static org.eclipse.swtbot.swt.finder.waits.Conditions.waitForWidget;
+import static org.hamcrest.CoreMatchers.both;
+import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeThat;
 
 import java.math.BigInteger;
 import java.util.Map;
@@ -33,6 +41,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
 import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
 import org.eclipse.emf.ecp.view.spi.common.callback.ViewModelPropertiesUpdateCallback;
@@ -44,13 +53,13 @@
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.emfstore.bowling.Area;
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
 import org.eclipse.emf.emfstore.bowling.League;
 import org.eclipse.emf.emfstore.bowling.Matchup;
 import org.eclipse.emf.emfstore.bowling.Player;
 import org.eclipse.emf.emfstore.bowling.Tournament;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.DetailCompositeBuilder;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.InitialSelectionProvider;
-import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailComposite;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailSWTFactory;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
@@ -377,6 +386,7 @@
 		/* unchanged after click */
 		SWTTestUtil.waitForUIThread();
 		assertEquals(text, bot.text().getText());
+		assumeThat("Selection not changed in tree", bot.tree().selection().get(0, 0), is("Player Bob"));
 
 		/* changed after delay */
 		bot.waitUntil(new ICondition() {
@@ -496,10 +506,12 @@
 		/* detail unchanged after down, but selection changed already */
 		SWTTestUtil.waitForUIThread();
 		assertEquals(text, bot.text().getText());
+		assumeThat("Selection not changed in tree", bot.tree().selection().get(0, 0), is("Player Bob"));
 		bot.waitUntil(new DefaultCondition() {
 
 			@Override
 			public boolean test() throws Exception {
+				SWTTestUtil.waitForUIThread();
 				return "Player Bob".equals(bot.tree().selection().get(0, 0));
 			}
 
@@ -547,6 +559,7 @@
 	}
 
 	@Test
+	@SuppressWarnings("deprecation")
 	public void cacheNotCached() {
 		/* setup render */
 		final League league = BowlingFactory.eINSTANCE.createLeague();
@@ -576,7 +589,7 @@
 
 		/* setup cache */
 		final AtomicReference<EObject> isCachedCalledWith = new AtomicReference<EObject>();
-		tmdComposite.get().setCache(new TreeMasterDetailCache() {
+		tmdComposite.get().setCache(new org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache() {
 
 			@Override
 			public boolean isChached(EObject selection) {
@@ -598,6 +611,11 @@
 			@Override
 			public void cache(ECPSWTView ecpView) {
 			}
+
+			@Override
+			public void clear() {
+				// Nothing cached, nothing to clear
+			}
 		});
 
 		/* act select something */
@@ -613,6 +631,7 @@
 	}
 
 	@Test
+	@SuppressWarnings("deprecation")
 	public void cacheCacheAndRerender() {
 		/* setup render and select something */
 		final League league = BowlingFactory.eINSTANCE.createLeague();
@@ -651,19 +670,19 @@
 		final Text nameWidget = bot.text().widget;
 
 		/* setup cache */
-		tmdComposite.get().setCache(new TreeMasterDetailCache() {
+		tmdComposite.get().setCache(new org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailCache() {
 
 			private ECPSWTView ecpView;
 
 			@Override
 			public boolean isChached(EObject selection) {
-				assertSame(alice, selection);
+				assertSame(alice.eClass(), selection.eClass());
 				return true;
 			}
 
 			@Override
 			public ECPSWTView getCachedView(EObject selection) {
-				assertSame(alice, selection);
+				assertSame(alice.eClass(), selection.eClass());
 				return ecpView;
 			}
 
@@ -675,6 +694,11 @@
 				}
 				this.ecpView = ecpView;
 			}
+
+			@Override
+			public void clear() {
+				ecpView = null;
+			}
 		});
 
 		/* act select something else */
@@ -932,6 +956,51 @@
 		assertEquals(shellsBefore, Display.getCurrent().getShells().length);
 	}
 
+	@Test
+	public void selectAndReveal() throws InterruptedException {
+
+		// arrange
+		final League league = BowlingFactory.eINSTANCE.createLeague();
+		final Player alice = BowlingFactory.eINSTANCE.createPlayer();
+		final Player bob = BowlingFactory.eINSTANCE.createPlayer();
+		alice.setName(ALICE);
+		bob.setName(BOB);
+		league.getPlayers().add(alice);
+		league.getPlayers().add(bob);
+
+		Display.getDefault().syncExec(() -> {
+			composite = TreeMasterDetailSWTFactory
+				.fillDefaults(shell, SWT.NONE, league)
+				.customizeInitialSelection(new InitialSelectionProvider() {
+					@Override
+					public EObject getInitialSelection(Object input) {
+						return alice;
+					}
+				})
+				// Display.timerExec doesn't work in the tests on some platforms
+				.customizeUpdateDelay(0)
+				.create();
+			GridDataFactory.fillDefaults().grab(true, true).applyTo(composite);
+			shell.open();
+		});
+
+		SWTTestUtil.waitForUIThread();
+
+		/* act */
+		Display.getDefault().syncExec(() -> {
+			composite
+				.selectAndReveal(UniqueSetting.createSetting(bob, BowlingPackage.Literals.PLAYER__IS_PROFESSIONAL));
+		});
+
+		SWTTestUtil.waitForUIThread();
+
+		// wait for the selection change
+		bot.waitUntil(waitForWidget(both(widgetOfType(Text.class)).and(withText(BOB))));
+
+		// assert the reveal part
+		assertThat("Feature not revealed", bot.checkBox().isActive(), is(true));
+	}
+
 	// TODO test set selection programmatically
 	// TODO test get editing domain
 	// TODO test rendering finished callback
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 41a0a0b..a691485 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.21.0.qualifier
-Fragment-Host: org.eclipse.emfforms.view.model.localization;bundle-version="[1.21.0,1.22.0)"
+Bundle-Version: 1.22.0.qualifier
+Fragment-Host: org.eclipse.emfforms.view.model.localization;bundle-version="[1.22.0,1.23.0)"
 Bundle-Localization: OSGI-INF/l10n/bundle
-Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.21.0";x-internal:=true,
- org.eclipse.emfforms.view.model.localization.tests;version="1.21.0"
+Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.22.0";x-internal:=true,
+ org.eclipse.emfforms.view.model.localization.tests;version="1.22.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.21.0,1.22.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)"
+Import-Package: org.eclipse.emfforms.spi.localization;version="[1.22.0,1.23.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 9a64bf9..7b3b483 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.21.0-SNAPSHOT</version>
+		<version>1.22.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.21.0-SNAPSHOT</version>
+	<version>1.22.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 a4a7022..dba3a89 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.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.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.template.service;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.21.0,1.22.0)"
+ org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.template.service;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.22.0,1.23.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/.settings/org.eclipse.pde.api.tools.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 32cb100..1a94260 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
@@ -9,9 +9,9 @@
  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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.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
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.pde.api.tools.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
index e4e3c00..cfb400b 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,3 +1,4 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
 ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
 ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
 ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
@@ -10,6 +11,7 @@
 API_USE_SCAN_FIELD_SEVERITY=Error
 API_USE_SCAN_METHOD_SEVERITY=Error
 API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
 CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
 CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
 CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
@@ -49,6 +51,7 @@
 ILLEGAL_INSTANTIATE=Warning
 ILLEGAL_OVERRIDE=Warning
 ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
 INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
@@ -60,6 +63,7 @@
 INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
 INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Warning
 INVALID_JAVADOC_TAG=Warning
 INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
 LEAK_EXTEND=Warning
@@ -86,10 +90,13 @@
 TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
 UNUSED_PROBLEM_FILTERS=Ignore
 automatically_removed_unused_problem_filters=Disabled
+changed_execution_env=Error
 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
+incompatible_api_component_version_report_major_without_breaking_change=Ignore
+incompatible_api_component_version_report_minor_without_api_change=Ignore
 invalid_since_tag_version=Error
 malformed_since_tag=Error
 missing_since_tag=Error
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 e654f4a..f85a3a5 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
@@ -8,13 +8,13 @@
 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.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.21.0,1.22.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.22.0,1.23.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.22.0,1.23.0)",
  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.21.0,1.22.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.22.0,1.23.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)",